2
我使用SQL Server 2008的SQL更新 - 更新所选行
我有一个名为表MYTABLE
两列:ID
,STATUS
我想写一个存储过程返回其STATUS
是记录0.但是,这个存储过程必须将返回行的STATUS
更新为1.我如何在单个查询中选择和更新操作?
我使用SQL Server 2008的SQL更新 - 更新所选行
我有一个名为表MYTABLE
两列:ID
,STATUS
我想写一个存储过程返回其STATUS
是记录0.但是,这个存储过程必须将返回行的STATUS
更新为1.我如何在单个查询中选择和更新操作?
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
大概可以使用OUTPUT
子句完成。
该死的忘了输出 - 我非要被经常使用sql2000! – CResults
@CResults - 真的。我应该提到这从SQL Server 2005起作用。 –