Вместо триггера перед удалением - PullRequest
2 голосов
/ 23 апреля 2011

предположим, у меня есть один вместо триггера для таблицы перед удалением.поэтому я просто хочу знать, если я выполню удаление, то вместо триггера сработает перед удалением?

также скажите мне, как получить удаленные данные из вместо триггера до удаления.Кто-нибудь может показать мне пример кода.

1 Ответ

2 голосов
/ 23 апреля 2011

Она запускает вместо удаления.Если вы не реализуете это самостоятельно, ничего не удаляется.Эти триггеры обычно используются в представлениях, а не в таблицах.

CREATE TABLE T(
C INT IDENTITY(1,1) PRIMARY KEY,
D INT)

INSERT INTO T (D)
SELECT 1 UNION ALL SELECT 2

GO

CREATE TRIGGER tr ON T
INSTEAD OF DELETE 
AS
BEGIN 
PRINT 'Do Nothing'
END

GO

DELETE 
FROM T

SELECT * 
FROM T     /*The 2 rows are still there*/

GO         /*Implement the trigger*/

ALTER TRIGGER tr ON T
INSTEAD OF DELETE 
AS
BEGIN 
DELETE T
FROM T 
JOIN DELETED D 
ON T.C = D.C
END

GO

DELETE 
FROM T

SELECT * 
FROM T      /*The 2 rows are now gone*/

DROP TABLE T
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...