我想创建一个存储过程,返回所有已更新的记录。
我的更新查询语句如下:
UPDATE BatchItems
SET [Status] = 'Processing'
WHERE [Status] = 'Queued'
我不确定如何返回这些特定的记录。
我想创建一个存储过程,返回所有已更新的记录。
我的更新查询语句如下:
UPDATE BatchItems
SET [Status] = 'Processing'
WHERE [Status] = 'Queued'
我不确定如何返回这些特定的记录。
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
如果你正在使用SQL Server 2005或更高版本,你可以使用“OUTPUT”语句。
http://msdn.microsoft.com/zh-cn/library/ms177564(v=SQL.90).aspx
update BatchItems
set Status = 'Processing'
output inserted.*
where Status = 'Queued'