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 server 的内联 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 回答