我有一个要求,需要获取表中最后更新行的ID,并将此ID用于其他操作。
我没有像UpdatedOn这样的列,可以引用该列。
那么,是否有像scope_identity和@@identity(它们可以给出最后插入的行ID)的函数也适用于Update呢?
请帮我解决此问题。
我有一个要求,需要获取表中最后更新行的ID,并将此ID用于其他操作。
我没有像UpdatedOn这样的列,可以引用该列。
那么,是否有像scope_identity和@@identity(它们可以给出最后插入的行ID)的函数也适用于Update呢?
请帮我解决此问题。
你可以像这样做
declare @mytable as TABLE
(
Id int
)
Update Table Set Name='Nitin'
OUTPUT INSERTED.Id into @mytable
where LastName='Varpe'
Select Id from @mytable
由于您只对最后更新的ID感兴趣,因此您可以在SET
子句中将其分配给一个变量:
DECLARE @LastID INT = NULL
UPDATE
SomeTable
SET
SomeColumn = 'SomeValue',
@LastID = ID
WHERE
SomeOtherColumn = 'SomeOtherValue'
我认为你应该寻找触发器。选择“插入/更新后”触发器。它将始终为你提供来自名为插入的动态表中的最后一个插入/更新记录...
查询:
从插入的表中选择*。
并获取所需字段。
scope_identity
仅适用于此范围,而不是两天后,因此它也不能替代CreatedAt
列。 - Tim Schmelter