Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Mandarin Member Откуда: Саратов Сообщений: 1215 |
Всем привет! Подскажите пожалуйста правильно ли я понимают разницу. Операции в триггере INSTEAD OF выполняются ВМЕСТО операций, а AFTER ПОСЛЕ операции. Значит если мне что-то нужно изменить, вместе с изменениями данных, то выгоднее использовать INSTEAT OF т.к. операция с изменениями будет только одна (например insert), а в случае с AFTER будет insert + update. пример create table myTable(f1 int,f2 int) declare @f2 int = (select 1+1) insert into myTable(f1,f2) values(1,@f2) -- при использовании триггеров запрос измениться так insert into myTable(f1) values(1) -- instead of declare @f2 int = (select 1+1) insert into myTable(f1,f2) select f1,@f2 from inserted -- after declare @f2 int = (select 1+1) update t set f2 = @f2 from myTable t join inserted i on i.f1 = t.f1 |
17 авг 17, 13:05 [20730999] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
Mandarin, угу, INSTEAD OF это полная замена операции, вместо INSERT/... делать то что в триггере. |
17 авг 17, 13:08 [20731015] Ответить | Цитировать Сообщить модератору |
Mandarin Member Откуда: Саратов Сообщений: 1215 |
TaPaK, понятно, спасибо! |
17 авг 17, 13:15 [20731039] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |