|
TRIGGERS и тонкости их работы?
|
|||
---|---|---|---|
#18+
Здравствуйте! Имеется сервер Microsoft SQL Server 2016 (SP2-GDR) (KB4293802) - 13.0.5081.1 (X64) На событие INSERT в таблице создан триггер. И вот вопрос: он срабатывает на добавление каждой записи? Т.е. добавили 10 записей (чисто теоретически абсолютно одновременно) - сервер запустит 10 экземпляров триггера или запустит один и в таблице INSERTED будет рекорд-сет? Грубо говоря - всегда ли таблица INSERTED содержит только одну запись или может быть ситуация когда там 1 и более? Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2019, 13:44 |
|
TRIGGERS и тонкости их работы?
|
|||
---|---|---|---|
#18+
ughunter он срабатывает на добавление каждой записи? А посмотреть в документацию и увидеть "statement"?.. Он срабатывает за выполнение запроса INSERT. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2019, 14:52 |
|
TRIGGERS и тонкости их работы?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Не понял ответа. Я же о другом спрашивал. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2019, 15:01 |
|
TRIGGERS и тонкости их работы?
|
|||
---|---|---|---|
#18+
ughunter Здравствуйте! Имеется сервер Microsoft SQL Server 2016 (SP2-GDR) (KB4293802) - 13.0.5081.1 (X64) На событие INSERT в таблице создан триггер. И вот вопрос: он срабатывает на добавление каждой записи? Т.е. добавили 10 записей (чисто теоретически абсолютно одновременно) - сервер запустит 10 экземпляров триггера или запустит один и в таблице INSERTED будет рекорд-сет? Грубо говоря - всегда ли таблица INSERTED содержит только одну запись или может быть ситуация когда там 1 и более? Спасибо!Считайте что там ВСЕГДА больше одной записи. Это хоть и виртуальная, но таки таблица. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2019, 16:43 |
|
TRIGGERS и тонкости их работы?
|
|||
---|---|---|---|
#18+
ughunter запустит один и в таблице INSERTED будет рекорд-сет? ughunter может быть ситуация когда там 1 и более? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2019, 18:12 |
|
TRIGGERS и тонкости их работы?
|
|||
---|---|---|---|
#18+
ughunter, и, кстати, не используйте @@ROWCOUNT вначале триггера для определения количества записей, ибо это сработает неправильно в MERGE, если часть записей вставляется, а другая апдейтится или удаляется. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2019, 19:25 |
|
TRIGGERS и тонкости их работы?
|
|||
---|---|---|---|
#18+
Sergey Sizov, авторСчитайте что там ВСЕГДА больше одной записи. Это хоть и виртуальная, но таки таблица. т.е. если я правильно понял лучше всего в триггере использовать курсор на таблицу INSERTED ? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2019, 20:12 |
|
TRIGGERS и тонкости их работы?
|
|||
---|---|---|---|
#18+
iap, Спасибо! Буду иметь ввиду ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2019, 20:13 |
|
TRIGGERS и тонкости их работы?
|
|||
---|---|---|---|
#18+
ughunter Sergey Sizov, авторСчитайте что там ВСЕГДА больше одной записи. Это хоть и виртуальная, но таки таблица. т.е. если я правильно понял лучше всего в триггере использовать курсор на таблицу INSERTED ?Лучше всего использовать обычные команды SQL для таблиц deleted и inserted. В том числе и самые обычные предикаты в JOIN и WHERE. Курсоры требуются невероятно редко. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2019, 20:45 |
|
TRIGGERS и тонкости их работы?
|
|||
---|---|---|---|
#18+
iap ughunter Sergey Sizov, пропущено... т.е. если я правильно понял лучше всего в триггере использовать курсор на таблицу INSERTED ? В том числе и самые обычные предикаты в JOIN и WHERE. Курсоры требуются невероятно редко. Я, например, их объявляю, если туда надо поместить сообщение об ошибке перед выходом из триггера. И это сообщение формируется в разных частях триггера. Ну и т.п. Без этого можно и обойтись, правда? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2019, 20:48 |
|
|
start [/forum/topic.php?fid=46&fpage=76&tid=1686781]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 319ms |
total: | 462ms |
0 / 0 |