如何获取SQL Server 2008中上次更新的行的ID

时间:2013-11-25 08:08:11

标签: sql sql-server-2008 sql-update

我有一个要求,我想获取表中最后更新行的id,我想将此id用于其他一些操作。

我没有像UpdatedOn这样的列,所以我可以引用该列。

还有任何函数,比如scope_identity和@@ identity(它给出了我最后插入的行id的id)也用于更新。

请帮帮我。

3 个答案:

答案 0 :(得分:8)

你可以做这样的事情

declare @mytable as TABLE
    (
      Id int
    )

Update Table Set Name='Nitin'
OUTPUT INSERTED.Id into @mytable
 where LastName='Varpe'

 Select Id from @mytable

答案 1 :(得分:6)

由于您只对最新更新的ID感兴趣,因此您只需将其分配给SET子句中的变量:

DECLARE @LastID INT = NULL

UPDATE 
    SomeTable
SET
    SomeColumn = 'SomeValue',
    @LastID = ID
WHERE
    SomeOtherColumn = 'SomeOtherValue'

答案 2 :(得分:0)

我认为你应该寻找触发器。转到插入/更新触发器后。它总是从名为Inserted ...

的动态表中为您提供最后插入/更新的记录

查询:

Select * from Inserted.并获得您需要的任何字段。