SSIS Execute a Stored Procedure with the parameters from .CSV file SQL Server 2005

后端 未结 4 530
陌清茗
陌清茗 2021-01-25 18:08

I\'m learning SSIS and this seems like an easy task but I\'m stuck.

I have a CSV file Orders.csv with this data:

ProductId,Quantity,CustomerId
1,1,104
2         


        
相关标签:
4条回答
  • 2021-01-25 18:39

    I'm not sure if this answers your question. But I was looking to do this and I achieved it using the BULK INSERT command. I created a staging table with all of the columns in the csv file, and instead of a stored procedure I used a INSTEAD OF INSERT trigger to handle the logic of inserting it into many tables.

    0 讨论(0)
  • 2021-01-25 18:46

    One of my coworkers just give me the answer.

    You don't need the the ForEach Loop Container or the RecordSet Container.

    All you need is the Flat File Source and an OLE DB Command. Connect to your database and inside the OLE DB Command select the appropriate connection.

    In the Component Properties enter the following SQLCommand:

    exec ssis_createorder ?, ?, ? 
    

    The "?" are place holders for the parameters.

    Next under the Column Mappings tab map the .csv file columns to the stored procedure parameters.

    You are finished go ahead and run the package.

    Thanks Gary if you were on StackOverFlow I would give you an upvote and accept your answer.

    0 讨论(0)
  • 2021-01-25 18:48

    I suspect that you need to look at your Data Flow task. It's likely that the values from the source CSV file are being interpreted as string values. You will probably need a Derived Column component or a Data Conversion component to convert your input values to the desired data type.

    And, I think @StephaneT's solution would be good for executing the SP.

    0 讨论(0)
  • 2021-01-25 19:01

    If I understand correctly, what you want to do is execute a stored procedure 3 times for each row in the data source.

    What if you just create a data flow with a flat file data source and pipe the data through 3 execute sql command tasks? Just map the columns in the data to the input params of your stored procedure.

    Maybe I'm not seeing it correctly in your question and I'm thinking too simple, but in my experience you need to avoid using the foreach task in SSIS as much as possible.

    0 讨论(0)
提交回复
热议问题