我正在使用SQL Server 2008
我有一个名为MYTABLE
的表格,其中有两列:ID
,STATUS
我想编写一个存储过程,它返回STATUS
为0的记录。但是这个存储过程必须将返回行的STATUS
更新为1.如何选择和更新操作在一个查询中?
答案 0 :(得分:9)
update MyTable
set Status = 1
output inserted.*
where Status = 0
如果你想在更新之前返回表格的样子,你应该使用deleted。*代替。
update MyTable
set Status = 1
output deleted.*
where Status = 0
如果您愿意,您当然可以同时使用这两种方式,而不必使用*
。您可以指定您感兴趣的列。
update MyTable
set Status = 1
output inserted.ID, inserted.status, deleted.status as OldStatus
where Status = 0
答案 1 :(得分:0)
可以使用OUTPUT
子句来完成。