4

更新クエリの実行中に、列の値に基づいて行を削除する必要があります。コードは次のとおりです。

 UPDATE tag SET tag_count = tag_count - 1 WHERE tag_id = 1
 IF tag_count < 1
 delete from tag where tag_id = 1

ここでのこのクエリは私にエラーを与えます。

編集 私はC#とSQLサーバーでインラインSQLを使用しています

4

2 に答える 2

6

一般に、これらの場合の最良のオプションは、トランザクション内でUPDATEステートメントとDELETEステートメントをラップすることです。

BEGIN TRANSACTION;

UPDATE tag SET tag_count = tag_count - 1 WHERE tag_id = 1
DELETE from tag where tag_id = 1 and tag_count < 1;

COMMIT TRANSACTION;
于 2010-01-25T00:54:26.927 に答える
0

うーん、BeginとEndを使ってみましたか?

 UPDATE tag 
 SET tag_count = tag_count - 1 
 WHERE tag_id = 1

 IF tag_count < 1
     BEGIN
       DELETE FROM tag 
       WHERE tag_id = 1
     END
于 2010-01-25T00:56:07.773 に答える