小编典典

SQL Server存储过程返回更新的记录

sql

我正在尝试创建一个存储的proc,它返回所有已更新的记录。

我的更新查询是这样的:

UPDATE BatchItems 
SET [Status] = 'Processing' 
WHERE [Status] = 'Queued'

我只是不确定如何返回这些特定记录。


阅读 354

收藏
2021-04-22

共1个答案

小编典典

您可以OUTPUT INSERTED.[cols]用来获取语句已修改的行。

UPDATE BatchItems 
   SET [Status] = 'Processing' 
   OUTPUT INSERTED.*
WHERE [Status] = 'Queued'

例子;

select 'Queued       ' as status, 1 as id into #BatchItems
insert  #BatchItems values ('Queued', 2)
insert  #BatchItems values ('XXX', 3)

UPDATE #BatchItems 
  SET [Status] = 'Processing' 
  OUTPUT INSERTED.*
WHERE [Status] = 'Queued'

>>status       id
>>Processing   2
>>Processing   1
2021-04-22