Hel*_*Out 12 sql-server stored-procedures sql-update
@@IDENTITY
返回插入ID
的最后一行,我想检索更新的最后一行的ID .
这是我的查询:
UPDATE [Table]
SET Active = 1,
Subscribed = 1,
RenewDate = GETDATE(),
EndDate = DATEADD(mm,1,getdate()),
WHERE SC = @SC
AND Service = @Ser
Run Code Online (Sandbox Code Playgroud)
如何获取此更新行的ID?
该列被调用TableID
,我没有在查询中使用它.
mar*_*c_s 15
由于没有插入ID,您无法检索ID .....
但是你可以:
只需使用与您的相同标准查询表UPDATE
:
SELECT TableID
FROM dbo.Table
WHERE SC = @SC AND Service = @Ser -- just use the same criteria
Run Code Online (Sandbox Code Playgroud)使用该OUTPUT
条款UPDATE
来获取该信息:
UPDATE [Table]
SET Active = 1,
Subscribed = 1,
RenewDate = GETDATE(),
EndDate = DATEADD(mm,1,getdate())
OUTPUT Inserted.TableId -- output the TableID from the table
WHERE SC = @SC AND Service = @Ser
Run Code Online (Sandbox Code Playgroud)了解更多有关OUTPUT
条款 Technet上-它可以被用来INSERT
和DELETE
也
你可以尝试使用这个:
OUTPUT INSERTED.TableID
Run Code Online (Sandbox Code Playgroud)
在你的代码中它看起来像这样:
UPDATE [Table]
SET Active = 1,
Subscribed = 1,
RenewDate = GETDATE(),
EndDate = DATEADD(mm,1,getdate()),
OUTPUT INSERTED.TableID
WHERE SC = @SC
AND Service = @Ser
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.