Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
relav Member Откуда: Сообщений: 204 |
добрый день! Скажите пжл, что будет считываться с таблиц insert и delete в триггере типа instead of? |
11 авг 15, 16:45 [18004273] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47047 |
|
||
11 авг 15, 16:46 [18004279] Ответить | Цитировать Сообщить модератору |
Knyazev Alexey Member Откуда: Екб -> Мск Сообщений: 10234 Блог |
то же, что и в триггерах after |
11 авг 15, 16:47 [18004283] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47047 |
Например, поле со свойством IDENTITY или типа ROWVERSION читать бесполезно, ибо там NULL в отличие от триггера AFTER INSERT |
||
11 авг 15, 16:50 [18004309] Ответить | Цитировать Сообщить модератору |
relav Member Откуда: Сообщений: 204 |
iap, )) я имею ввиду значения предыдущие и текущие будет считываться или что? |
11 авг 15, 16:58 [18004359] Ответить | Цитировать Сообщить модератору |
Knyazev Alexey Member Откуда: Екб -> Мск Сообщений: 10234 Блог |
тест накидать за 1 минуту можно - это быстрее, чем создать тему в форуме |
||
11 авг 15, 17:00 [18004376] Ответить | Цитировать Сообщить модератору |
relav Member Откуда: Сообщений: 204 |
Knyazev Alexey, еще один вопрос. что написать в триггере на удаление , чтоб данные в таблице по событию удалить не удалялись, а выдавалось сообщение: "данные удалять запрещено." Сделал через инструкцию raiserror, но она вывела сообщение и данные удалились. raiserror - не останавливает программу? |
11 авг 15, 17:19 [18004502] Ответить | Цитировать Сообщить модератору |
felix_ff Member Откуда: Moscow Сообщений: 1692 |
relav,rollback transaction |
11 авг 15, 17:26 [18004562] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8316 |
relav, throw прекращает выполнение пакета, raiserror - нет. RTFM. |
11 авг 15, 17:34 [18004617] Ответить | Цитировать Сообщить модератору |
felix_ff Member Откуда: Moscow Сообщений: 1692 |
он версию сервера не сказал, есть вероятность что она ниже 2012 |
||
11 авг 15, 17:40 [18004651] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47047 |
CREATE TRIGGER InsteadOfDeleteTable ON [Table] AS PRINT N'данные удалять запрещено'; |
||
11 авг 15, 20:46 [18005436] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47047 |
CREATE TRIGGER InsteadOfDeleteTable ON [Table] INSTEAD OF DELETE AS PRINT N'данные удалять запрещено'; |
||||
11 авг 15, 22:38 [18005686] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47047 |
Microsoft постоянно обещает убрать возможность возвращать резалтсет из триггера. Получается, правильнее не PRINT, а RAISERROR: CREATE TRIGGER InsteadOfDeleteTable ON [Table] INSTEAD OF DELETE AS RAISERROR(N'данные удалять запрещено',0,0) WITH NOWAIT; |
11 авг 15, 22:45 [18005715] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |