powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Откат триггера при не соблюдении условия
2 сообщений из 2, страница 1 из 1
Откат триггера при не соблюдении условия
    #32030125
Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кинь-те пример правильного триггера на добавление, удаление, в которых бы проверялось соблюдение
некоего условия и в случае несоблюдения - откат.
Заранее спасиб
Я вот тут налабал (ещё только учусь), но чё-то не так, поскольку уникальный индекс вперёд срабатывает:


IF EXISTS (SELECT name FROM sysobjects WHERE name = 'tr_add' AND type = 'TR')
DROP TRIGGER tr_add
GO
CREATE TRIGGER tr_add ON t_tn
FOR INSERT
AS
DECLARE @newId INT, @tn INT, @nCntRow INT, @cSay VARCHAR(200)
SELECT @newId=i.id_tn, @tn=i.tn FROM t_tn t, inserted i WHERE t.id_tn=i.id_tn

IF @newId IS NOT NULL
BEGIN
SET @nCntRow=(SELECT COUNT(tn) FROM t_tn WHERE tn=@tn)
IF @nCntRow>1
BEGIN
ROLLBACK TRAN
SET @cSay=' Таб. номер '+RTRIM(CONVERT(CHAR(10), @tn))+' ужо есть!'
RAISERROR (@cSay,16,1)
END
END
ELSE
BEGIN
ROLLBACK TRAN
RAISERROR (' Откат триггера!',16,1)
END
...
Рейтинг: 0 / 0
Откат триггера при не соблюдении условия
    #32030129
Фотография Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оно и будет срабатывать, ибо по определению Constraints проверяются перед AFTER триггерами, но после INSTEAD-OF триггерами.

Цитата из BOL:
If constraints exist on the trigger table, they are checked after the INSTEAD OF trigger execution but prior to the AFTER trigger execution. If the constraints are violated, the INSTEAD OF trigger actions are rolled back and the AFTER trigger is not executed.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Откат триггера при не соблюдении условия
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]