如何从SSIS调用存储过程



我想创建一个SSIS包,它将调用存储过程并将过程的输出转储到表中。

SSIS包将返回输出,我需要将此结果集输出转储到另一个表中。但是在插入之前,我想从表中更新行,如果有任何行存在于该日期,或者然后插入结果集。

我不太明白你的要求,但你可以这样做:

  1. 确保YourStagingTable存在并且列匹配存储过程输出

下面是一些示例代码,放在你的执行SQL任务,做你想要的:

-- Clear Staging Table
TRUNCATE YourStagingTable
-- Save results of stored proc into staging table
INSERT INTO YourStagingTable
EXEC YourProc
-- Update any existing records
UPDATE YourFinalTable
SET YourUpdateField = YourStagingTable.YourSourceField
FROM YourStagingTable
WHERE YourFinalTable.JoinField1 = YourStagingTable.JoinField1
-- Insert any non existing records
INSERT INTO YourFinalTable (Column1,Column2)
SELECT Column1,Column2
FROM YourStagingTable
WHERE NOT EXISTS (
    SELECT 1 FROM YourFinalTable 
    WHERE YourFinalTable.JoinField1 = YourStagingTable.JoinField1
    )

最新更新