更新クエリの実行中に、列の値に基づいて行を削除する必要があります。コードは次のとおりです。
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を使用しています
更新クエリの実行中に、列の値に基づいて行を削除する必要があります。コードは次のとおりです。
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を使用しています
一般に、これらの場合の最良のオプションは、トランザクション内で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;
うーん、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