選択された行を更新、私はSQL Server 2008のSQLアップデート -
を使用しています私は2つの列を持つMYTABLE
という名前のテーブルがあります:ID
を、STATUS
私はSTATUS
あるレコードを返すストアドプロシージャを作成したいですしかし、このストアドプロシージャは、返された行のSTATUS
を1に更新する必要があります。このクエリを1回のクエリで選択して更新するにはどうすればよいですか?
選択された行を更新、私はSQL Server 2008のSQLアップデート -
を使用しています私は2つの列を持つMYTABLE
という名前のテーブルがあります:ID
を、STATUS
私はSTATUS
あるレコードを返すストアドプロシージャを作成したいですしかし、このストアドプロシージャは、返された行のSTATUS
を1に更新する必要があります。このクエリを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
節を使用して行うことができます。
出力について忘れてしまった - 私はSQL5000を頻繁に使用することを強要されています! – CResults
@CResults - 本当です。私はこれがSQL Server 2005から動作することを言及する必要があります。 –