[SSIS 2008 R2]SSIS - 使用合併T-SQL中的OLE DB源的命令文本
我的控制流程是這樣的:在一個DB
截斷臨時表(如DB_Staging )本地的SSIS服務器 - >
負載臨時表通過一個數據流從外部SQL Server(例如DB_SOURCE) - >
使用T-SQL MERGE查詢更新,插入和刪除登臺 表與不同DB中的表(例如, DB_DESTINATION)本地的SSIS服務器
對於第三步,我有一個數據流任務連接到DB_DESTINATION。此任務的數據流有一個OLE DB源設置爲包含T-SQL MERGE語句(查詢剪斷,爲了簡潔)SQL命令:
MERGE dbo.destination AS dest
USING (SELECT * FROM DB_STAGING.dbo.source) AS src
ON ...
WHEN MATCHED
AND ...
THEN UPDATE SET
...
WHEN NOT MATCHED BY TARGET
THEN INSERT
...
WHEN NOT MATCHED BY SOURCE
AND ...
THEN DELETE;
問題是,我在T-得到一個驗證錯誤SQL OLE DB源中的MERGE查詢。我是SSIS的新手,所以我不確定有什麼問題。加載臨時表和MERGE工作的查詢,正如我在Management Studio中測試過的那樣。任何人都可以提供指導嗎?來自BIDS的驗證錯誤消息是:
驗證錯誤。 DFT_MergeData OLEDB_DB_DESTINATION [1]:沒有列 信息是由SQL命令返回的。
你說你有一個「數據流」任務上的'MERGE'語句,是否正確?,導致它應該在「執行SQL語句」任務 – Lamak