Выполните обновление последней (минимальной) и верните ключ - PullRequest
0 голосов
/ 21 марта 2012

Очень активный стол с PK Int Iden

Что мне нужно, это:

update table 
set statusID = 7, folderID = 12 
where PK = ( select MIN(PK) from tbl where statusID = 5)

Мне нужно вернуть значение PK, или если нет статуса = 5, значит, какой-то индикатор потерпел неудачу.

1 Ответ

1 голос
/ 21 марта 2012

Если это SQL Server 2005+, вы можете использовать предложение OUTPUT для возврата PK обновленной строки:

update table 
set statusID = 7, folderID = 12 
output inserted.PK
where PK = ( select MIN(PK) from tbl where statusID = 5)

Вышеприведенный оператор будет (попытка)обновить строку с PK, возвращенным из подзапроса , а вернуть набор строк с одним столбцом, PK.Возвращенный набор строк будет содержать PK обновленной строки или ничего, если ничего не было обновлено.

...