检索最后插入的行

时间:2013-12-24 13:21:10

标签: sql sql-server sql-server-2008 tsql

我有一个包含GUID和Name列的表,我需要检索最后插入的行,以便将其加载到table2中。

但是我如何才能找到Table1中的最新数据。我似乎迷失了,我已经阅读了提出相同问题的类似帖子,但答案似乎对我的情况不起作用。

我正在使用SQL Server 2008并使用SSIS上传我的数据

1 个答案:

答案 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命令更快。