Как использовать условные операторы SQL - PullRequest
4 голосов
/ 25 января 2010

Мне нужно удалить строку на основе значения в столбце при выполнении запроса на обновление. Вот код:

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

Этот запрос дает мне ошибку.

EDIT Я использую встроенный SQL с C # и SQL Server

Ответы [ 2 ]

6 голосов
/ 25 января 2010

Как правило, лучший вариант в этих случаях - заключить операторы 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;
0 голосов
/ 25 января 2010

Хм, а вы пробовали использовать начало и конец?

 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...