2012-03-21 14 views
0

は私が必要なものPKのIntアイデン最新の更新(分)を実行し、キー

と非常にアクティブなテーブルをお持ちのゲットバックです:

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

私は戻って必要欲しいあった場合にPK値ですかステータス= 5でなければ、それは失敗したインジケータである。

+0

どのデータベースシステム(名前とバージョン)ですか? –

答えて

1

それはSQL Serverの2005+だ場合、あなたが更新された行のPKを返すためにOUTPUT clauseを使用することができます。

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

上記のステートメントがPKで行を更新(しようとする試みが)サブクエリから返されますおよびは、列が1つの行セットPKを返します。返された行セットには、更新された行のPKが含まれます。更新されなかった場合は何もありません。

関連する問題