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起作用。 –