Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Отличие обычных триггеров от INSTEAD OF  [new]
Макс85
Guest
Подскажите в чем отличие обычных триггеров от INSTEAD OF и почему бы всегда не применять обычные?
Почитал про них, никаких отличий.
http://msdn.microsoft.com/ru-ru/library/ms175089.aspx
8 дек 11, 22:59    [11733116]     Ответить | Цитировать Сообщить модератору
 Re: Отличие обычных триггеров от INSTEAD OF  [new]
SERG1257
Member

Откуда:
Сообщений: 2933
BOL
Обычно триггер INSTEAD OF INSERT определяется в представлении для вставки данных в одну или несколько базовых таблиц.
8 дек 11, 23:13    [11733182]     Ответить | Цитировать Сообщить модератору
 Re: Отличие обычных триггеров от INSTEAD OF  [new]
Макс85
Guest
SERG1257
BOL
Обычно триггер INSTEAD OF INSERT определяется в представлении для вставки данных в одну или несколько базовых таблиц.

Это и есть её основное отличие?
Просто выглядит как совет по использованию, а не основное отличие.
8 дек 11, 23:47    [11733380]     Ответить | Цитировать Сообщить модератору
 Re: Отличие обычных триггеров от INSTEAD OF  [new]
SERG1257
Member

Откуда:
Сообщений: 2933
http://msdn.microsoft.com/ru-ru/library/ms190267.aspx
8 дек 11, 23:56    [11733412]     Ответить | Цитировать Сообщить модератору
 Re: Отличие обычных триггеров от INSTEAD OF  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54822

Макс85
почему бы всегда не применять обычные?

Потому что некоторым людям не нужно чтобы движок СУБД делал то, что он обычно делает при DML.

А если речь идёт об MS SQL, так там INSTEAD OF триггера используются тупо из-за отсутствия
BEFORE триггеров. Этакий проктостоматологический обход missed feature.

Posted via ActualForum NNTP Server 1.5

9 дек 11, 00:06    [11733438]     Ответить | Цитировать Сообщить модератору
 Re: Отличие обычных триггеров от INSTEAD OF  [new]
Макс85
Guest
Dimitry Sibiryakov
Макс85
почему бы всегда не применять обычные?

Потому что некоторым людям не нужно чтобы движок СУБД делал то, что он обычно делает при DML.

А если речь идёт об MS SQL, так там INSTEAD OF триггера используются тупо из-за отсутствия
BEFORE триггеров
. Этакий проктостоматологический обход missed feature.
Posted via ActualForum NNTP Server 1.5

Ааа, вот оно че Михалыч

Т.е. если общо от BEFORE то что до DML, AFTER то что после DML, а INSTEAD OF то что вместо. Т.е. пользовательский DML вообще не проходит, из него можно только самому значения дёргать.
9 дек 11, 00:08    [11733445]     Ответить | Цитировать Сообщить модератору
 Re: Отличие обычных триггеров от INSTEAD OF  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Dimitry Sibiryakov
Макс85
почему бы всегда не применять обычные?

Потому что некоторым людям не нужно чтобы движок СУБД делал то, что он обычно делает при DML.

А если речь идёт об MS SQL, так там INSTEAD OF триггера используются тупо из-за отсутствия
BEFORE триггеров. Этакий проктостоматологический обход missed feature.
Posted via ActualForum NNTP Server 1.5

Вообще говоря instead of более функционален, нежели before, но before в качестве before всё-таки проще использовать, нежели instead в качестве before
9 дек 11, 01:39    [11733622]     Ответить | Цитировать Сообщить модератору
 Re: Отличие обычных триггеров от INSTEAD OF  [new]
Макс85
Guest
locky
Dimitry Sibiryakov
пропущено...

Потому что некоторым людям не нужно чтобы движок СУБД делал то, что он обычно делает при DML.

А если речь идёт об MS SQL, так там INSTEAD OF триггера используются тупо из-за отсутствия
BEFORE триггеров. Этакий проктостоматологический обход missed feature.
Posted via ActualForum NNTP Server 1.5

Вообще говоря instead of более функционален, нежели before, но before в качестве before всё-таки проще использовать, нежели instead в качестве before

А в чем именно он более функционален, помимо того что пользовательский DML не исполняется?
9 дек 11, 02:15    [11733657]     Ответить | Цитировать Сообщить модератору
 Re: Отличие обычных триггеров от INSTEAD OF  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Макс85
locky
пропущено...

Вообще говоря instead of более функционален, нежели before, но before в качестве before всё-таки проще использовать, нежели instead в качестве before

А в чем именно он более функционален, помимо того что пользовательский DML не исполняется?

Вот тем что пользовательский DML не выполняется - это уже большой плюс.
В некоторых ситуациях.
9 дек 11, 17:40    [11738721]     Ответить | Цитировать Сообщить модератору
 Re: Отличие обычных триггеров от INSTEAD OF  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Dimitry Sibiryakov
А если речь идёт об MS SQL, так там INSTEAD OF триггера используются тупо из-за отсутствия
BEFORE триггеров. Этакий проктостоматологический обход missed feature.


Ключевое слово для INSTEAD OF триггера, это VIEW. Comprenez-vous, mon ami?
9 дек 11, 23:13    [11740293]     Ответить | Цитировать Сообщить модератору
 Re: Отличие обычных триггеров от INSTEAD OF  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54822

pkarklin
Ключевое слово для INSTEAD OF триггера, это VIEW.

Что особенно забавно, BOL с тобой не согласен...

Posted via ActualForum NNTP Server 1.5

9 дек 11, 23:38    [11740378]     Ответить | Цитировать Сообщить модератору
 Re: Отличие обычных триггеров от INSTEAD OF  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Dimitry Sibiryakov
pkarklin
Ключевое слово для INSTEAD OF триггера, это VIEW.

Что особенно забавно, BOL с тобой не согласен...
Posted via ActualForum NNTP Server 1.5

Да, совершенно несогласен БОЛ.
Вот прямо так и пишет:
автор
Главное преимущество триггеров INSTEAD OF в том, что они позволяют поддерживать обновления для таких представлений, которые обновлять невозможно.
10 дек 11, 02:16    [11740784]     Ответить | Цитировать Сообщить модератору
 Re: Отличие обычных триггеров от INSTEAD OF  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54822

locky
Главное преимущество триггеров INSTEAD OF в том, что они позволяют поддерживать обновления
для таких представлений, которые обновлять невозможно.

Гораздо смешнее ситуация с VIEW, который обновлять таки можно:
INSTEAD OF triggers are not allowed on updateable views WITH CHECK OPTION.

Posted via ActualForum NNTP Server 1.5

10 дек 11, 13:56    [11741389]     Ответить | Цитировать Сообщить модератору
 Re: Отличие обычных триггеров от INSTEAD OF  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Dimitry Sibiryakov
locky
Главное преимущество триггеров INSTEAD OF в том, что они позволяют поддерживать обновления
для таких представлений, которые обновлять невозможно.

Гораздо смешнее ситуация с VIEW, который обновлять таки можно:
INSTEAD OF triggers are not allowed on updateable views WITH CHECK OPTION.

Posted via ActualForum NNTP Server 1.5

Ну почему - "смешнее"?
Или ты перекладываешь проверки на скуль - и тогда играешь по его правилам
Или ты перекладываешь проверки на себя - и тогда всё делаешь сам
10 дек 11, 16:02    [11741706]     Ответить | Цитировать Сообщить модератору
 Re: Отличие обычных триггеров от INSTEAD OF  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54822

locky
Или ты перекладываешь проверки на скуль - и тогда играешь по его правилам
Или ты перекладываешь проверки на себя - и тогда всё делаешь сам

А проверить данные до того как отдать их во власть моих триггеров скулю не позволяет
гордость, однозначно.

Posted via ActualForum NNTP Server 1.5

10 дек 11, 16:39    [11741856]     Ответить | Цитировать Сообщить модератору
 Re: Отличие обычных триггеров от INSTEAD OF  [new]
В смысле
Guest
Dimitry Sibiryakov
locky
Или ты перекладываешь проверки на скуль - и тогда играешь по его правилам
Или ты перекладываешь проверки на себя - и тогда всё делаешь сам

А проверить данные до того как отдать их во власть моих триггеров скулю не позволяет
гордость, однозначно.
Posted via ActualForum NNTP Server 1.5

В смысле, а после триггера ещё раз проверить данные?
10 дек 11, 16:47    [11741892]     Ответить | Цитировать Сообщить модератору
 Re: Отличие обычных триггеров от INSTEAD OF  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54822

В смысле
а после триггера ещё раз проверить данные?

А после-то зачем? Там они уже не во вьюхе, а в таблицах, у которых свои констрейны.

Posted via ActualForum NNTP Server 1.5

10 дек 11, 16:53    [11741913]     Ответить | Цитировать Сообщить модератору
 Re: Отличие обычных триггеров от INSTEAD OF  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Dimitry Sibiryakov
locky
Или ты перекладываешь проверки на скуль - и тогда играешь по его правилам
Или ты перекладываешь проверки на себя - и тогда всё делаешь сам

А проверить данные до того как отдать их во власть моих триггеров скулю не позволяет
гордость, однозначно.
Posted via ActualForum NNTP Server 1.5

Ну, проверил сервер - "всё ок", отдал моему триггеру.
Я в триггере вставил, не то, не туда и не так.
После чего что получается то? "я нашел в скуле баг - он даёт вставить не то"?
10 дек 11, 19:19    [11742487]     Ответить | Цитировать Сообщить модератору
 Re: Отличие обычных триггеров от INSTEAD OF  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Dimitry Sibiryakov
В смысле
а после триггера ещё раз проверить данные?

А после-то зачем? Там они уже не во вьюхе, а в таблицах, у которых свои констрейны.
Posted via ActualForum NNTP Server 1.5

Ох.... констренйты то тут причем?
10 дек 11, 19:19    [11742491]     Ответить | Цитировать Сообщить модератору
 Re: Отличие обычных триггеров от INSTEAD OF  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54822

locky
Я в триггере вставил, не то, не туда и не так.

Например?

Posted via ActualForum NNTP Server 1.5

10 дек 11, 19:27    [11742523]     Ответить | Цитировать Сообщить модератору
 Re: Отличие обычных триггеров от INSTEAD OF  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Dimitry Sibiryakov
locky
Я в триггере вставил, не то, не туда и не так.

Например?
Posted via ActualForum NNTP Server 1.5

например с вит чек написано, мол where code = '10'
а я в своем триггере вставляю code = '20'
и всё - нарушение, вроде бы как.
10 дек 11, 19:51    [11742610]     Ответить | Цитировать Сообщить модератору
 Re: Отличие обычных триггеров от INSTEAD OF  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54822

locky
а я в своем триггере вставляю code = '20'
и всё - нарушение, вроде бы как.

Вставляешь куда? Если в view где написано where code = '10' - да, нарушение и баг. А если
в таблицу - никакого нарушения. На таблице же нет with check option.

Posted via ActualForum NNTP Server 1.5

10 дек 11, 20:04    [11742652]     Ответить | Цитировать Сообщить модератору
 Re: Отличие обычных триггеров от INSTEAD OF  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Dimitry Sibiryakov
locky
а я в своем триггере вставляю code = '20'
и всё - нарушение, вроде бы как.

Вставляешь куда? Если в view где написано where code = '10' - да, нарушение и баг. А если
в таблицу - никакого нарушения. На таблице же нет with check option.
Posted via ActualForum NNTP Server 1.5

на таблице - нету
зато на вью - есть
откуда возникает вопрос - а нахрена там этот опшн нужен, если он не соблюдается?

бтв, вставка то она по любому в таблицу идёт
10 дек 11, 20:20    [11742749]     Ответить | Цитировать Сообщить модератору
 Re: Отличие обычных триггеров от INSTEAD OF  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54822

locky
зато на вью - есть
откуда возникает вопрос - а нахрена там этот опшн нужен, если он не соблюдается?

Ну так во вью ты и не вставляешь неправильных значений. У тебя же нет запроса insert into
view (code) values ('20').

Posted via ActualForum NNTP Server 1.5

10 дек 11, 20:40    [11742825]     Ответить | Цитировать Сообщить модератору
 Re: Отличие обычных триггеров от INSTEAD OF  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67525
Блог
Dimitry Sibiryakov
А проверить данные до того как отдать их во власть моих триггеров скулю не позволяет гордость, однозначно.

А что за идиотизм проверять данные до триггеров? Скажем, простая ситуация: триггер заполняет поле pk. Вы таки правда утверждаете, что перед этим запись должна быть отбита по check not null?
11 дек 11, 12:24    [11744300]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить