Iro*_*Tri 1 sql sql-server ssis sql-server-2008
我在SQL Server中有一个包含许多字段的表.其中两个是IDNumber和Resolved(Date)Resolved在SQL Server中为Null.然后我有IDNumber和Resolved(Date)的数据,我想导入和更新表.我希望它找到匹配的IDNumber并输入更新的解决日期.我怎样才能做到这一点?
谢谢!
在进行更新时,SSIS将一次更新一行,这可能非常昂贵.我建议使用执行SQL任务来创建临时表:
IF (OBJECT_ID(N'dbo.tmpIDNumberStaging') IS NOT NULL
DROP TABLE dbo.tmpIDNumberStaging;
CREATE TABLE dbo.tmpIDNumberStaging
( IDNumber INT NOT NULL,
Resoved DATE NOT NULL
);
Run Code Online (Sandbox Code Playgroud)
然后使用数据流任务将您的数据导入此表(不确定您的源是什么,但您的目标将是OLE DB Destination.您可能需要将数据流任务上的"延迟验证"设置为false和/或"验证外部元素"数据"在目标上为false,因为目标是在运行时创建的".
最后使用此临时表来更新主表(并删除临时表以进行清理)
UPDATE YourMainTable
SET Resolved = st.Resolved
FROM YourMainTable t
INNER JOIN dbo.tmpIDNumberStaging st
ON st.IDNumber = t.IDNumber
WHERE t.Resolved IS NULL;
-- CLEAN UP AND DROP STAGING TABLE
IF (OBJECT_ID(N'dbo.tmpIDNumberStaging') IS NOT NULL
DROP TABLE dbo.tmpIDNumberStaging;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5959 次 |
| 最近记录: |