我有一个包含GUID和Name列的表,我需要检索最后插入的行,以便将其加载到table2中。
但是我如何才能找到Table1中的最新数据。我似乎迷失了,我已经阅读了提出相同问题的类似帖子,但答案似乎对我的情况不起作用。
我正在使用SQL Server 2008并使用SSIS上传我的数据
答案 0 :(得分:3)
1 - 执行此操作的一种方法是使用触发器。查看我的博客文章,其中显示了如何在插入内容中将数据从一个表复制到另一个表。
触发复制数据= http://craftydba.com/?p=1995
然而,就像生活中的大多数事情一样,触发器有开销。如果您通过SSIS批量加载大量数据,可以加起来。
2 - 另一种方法是在第一个表中添加修改日期并修改您的SSIS包。
ALTER TABLE [MyTable1]
ADD [ModifyDate] [datetime] NULL DEFAULT GETDATE();
接下来,更改您的SSIS包。在控制流中,添加执行SQL任务。使用TSQL将[MyTable1]中的数据插入[MyTable2]。
INSERT INTO [MyTable2]
SELECT * FROM [MyTable1]
WHERE [ModifyDate] >= 'Start Date/Time Of Package';
执行SQL Task = http://technet.microsoft.com/en-us/library/ms141003.aspx
由于您正在处理服务器上的数据,因此这比数据流或执行OLEDB命令更快。