триггер перед удалением записи - PullRequest
0 голосов
/ 26 ноября 2010

Я использую SQL Server 2005 и 2 таблицы в моей базе данных. Как я могу написать триггер, который может вставить запись в таблицу 2 ДО удаления в таблицу 1? Как я могу это сделать? Мне это нужно для VB.Net. Я уже установил соединение с Sql сервером.

Ответы [ 2 ]

1 голос
/ 29 ноября 2010

Логически, значение INSERT до или после DELETE не имеет значения, поскольку триггер является частью неявной транзакции, созданной DELETE.

Таким образом, если INSERT завершается неудачно, DELETE откатывается (с соответствующей обработкой). ВСТАВЬТЕ сначала, УДАЛИТЕ их, то же самое.

Другими словами, вы можете использовать триггеры INSTEAD OF (или BEFORE) для выполнения INSERT, но затем вам нужно написать собственное DELETE в триггере. Из-за того, что я сказал выше о транзакциях, вы можете использовать триггер AFTER / FOR. Что-то вроде ответа Панкаджа Агарвала

1 голос
/ 26 ноября 2010

Предположим, есть две таблицы tblA и tblB.когда какая-либо запись удаляется из tblA, то с помощью триггера мы можем вставить эту удаленную запись в tblB

create trigger t1 on tblA 
for delete
as
insert into tblB select * from deleted
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...