SQL更新-更新所选行

SQL更新-更新所选行,sql,sql-server,stored-procedures,sql-update,Sql,Sql Server,Stored Procedures,Sql Update,我正在使用SQLServer2008 我有一个名为MYTABLE的表,有两列:ID,STATUS 我想编写一个存储过程,返回状态为0的记录。但此存储过程必须将返回行的状态更新为1。如何在单个查询中执行此选择和更新操作?可能可以使用子句来完成 如果要返回更新前表的外观,应改用deleted.* update MyTable set Status = 1 output deleted.* where Status = 0 如果您愿意,当然可以同时使用这两种方法,而不必使用*。您可以指定感兴趣的列

我正在使用SQLServer2008

我有一个名为
MYTABLE
的表,有两列:
ID
STATUS


我想编写一个存储过程,返回
状态为0的记录。但此存储过程必须将返回行的
状态更新为1。如何在单个查询中执行此选择和更新操作?

可能可以使用子句来完成

如果要返回更新前表的外观,应改用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

该死的忘记了输出-我责备被迫太频繁地使用sql2000@结果——如此真实。我应该提到的是,这可以在SQLServer2005中使用。
update MyTable
set Status = 1
output inserted.ID, inserted.status, deleted.status as OldStatus
where Status = 0