在执行更新查询时,我需要根据列中的值删除一行。这是代码:
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
在执行更新查询时,我需要根据列中的值删除一行。这是代码:
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
通常,在这些情况下,最好的选择是将 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