SQL Update - обновление выбранных строк - PullRequest
2 голосов
/ 19 июня 2011

Я использую SQL Server 2008

У меня есть таблица с именем MYTABLE с двумя столбцами: ID, STATUS

Я хочу написать хранимую процедуру, которая возвращаетзаписи, чей STATUS равен 0. Но этот сохраненный процесс должен обновить STATUS возвращенных строк до 1. Как я могу выполнить эту операцию выбора и обновления в одном запросе?

Ответы [ 2 ]

9 голосов
/ 19 июня 2011
update MyTable
set Status = 1
output inserted.*
where Status = 0

Если вы хотите вернуть то, как выглядела таблица до обновления, вы должны использовать удаленное. * Вместо этого.

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
0 голосов
/ 19 июня 2011

Вероятно, это можно сделать, используя предложение OUTPUT.

...