|
Про комбинированный триггер
|
|||
---|---|---|---|
#18+
Господа, вот я сделал такой триггер Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
При этом над исходной таблицей производиться полноценный MERGE, который содержит все три ветки: INSERT UPDATE DELETE. Если он вставит 100 записей, обновить 50 записей, и удалит 10 записей, то сработает ли триггер один раз или два раза (один раз на UPDATE, другой на DELETE). В общем как правильно получить тип операции по конкретной строке? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2021, 16:26 |
|
Про комбинированный триггер
|
|||
---|---|---|---|
#18+
a_voronin Господа, вот я сделал такой триггер Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
При этом над исходной таблицей производиться полноценный MERGE, который содержит все три ветки: INSERT UPDATE DELETE. Если он вставит 100 записей, обновить 50 записей, и удалит 10 записей, то сработает ли триггер один раз или два раза (один раз на UPDATE, другой на DELETE). В общем как правильно получить тип операции по конкретной строке? "Правильно" - ориентироваться на содержимое таблиц inserted/deleted. И не париться за "тип" операции. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2021, 16:30 |
|
Про комбинированный триггер
|
|||
---|---|---|---|
#18+
a_voronin, https://docs.microsoft.com/en-us/sql/t-sql/statements/merge-transact-sql?view=sql-server-ver15 MERGE (Transact-SQL) Trigger implementation For every insert, update, or delete action specified in the MERGE statement, SQL Server fires any corresponding AFTER triggers defined on the target table, but doesn't guarantee on which action to fire triggers first or last. Triggers defined for the same action honor the order you specify. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2021, 16:34 |
|
Про комбинированный триггер
|
|||
---|---|---|---|
#18+
В общем, сделал я вот так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2021, 16:41 |
|
Про комбинированный триггер
|
|||
---|---|---|---|
#18+
a_voronin В общем, сделал я вот так главное, что бы id не апдейтился ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2021, 16:43 |
|
Про комбинированный триггер
|
|||
---|---|---|---|
#18+
msLex a_voronin В общем, сделал я вот так главное, что бы id не апдейтился Одна из вещей, который я хочу и проверить, -- не обновляется ли кем-то ID. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2021, 16:49 |
|
Про комбинированный триггер
|
|||
---|---|---|---|
#18+
a_voronin msLex пропущено... главное, что бы id не апдейтился Одна из вещей, который я хочу и проверить, -- не обновляется ли кем-то ID. Тогда "ON d.Id = i.Id" даст непредсказуемый результат. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2021, 16:52 |
|
Про комбинированный триггер
|
|||
---|---|---|---|
#18+
msLex a_voronin пропущено... Одна из вещей, который я хочу и проверить, -- не обновляется ли кем-то ID. Тогда "ON d.Id = i.Id" даст непредсказуемый результат. Вполне предсказуемый. Останется DELETE запись истории и INSERT запись в основной таблице. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2021, 16:55 |
|
Про комбинированный триггер
|
|||
---|---|---|---|
#18+
a_voronin msLex пропущено... Тогда "ON d.Id = i.Id" даст непредсказуемый результат. Вполне предсказуемый. Останется DELETE запись истории и INSERT запись в основной таблице. это если обновлять одну запись. А если несколько, например, со сдвигом id = id + 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2021, 17:17 |
|
Про комбинированный триггер
|
|||
---|---|---|---|
#18+
msLex a_voronin пропущено... Вполне предсказуемый. Останется DELETE запись истории и INSERT запись в основной таблице. это если обновлять одну запись. А если несколько, например, со сдвигом id = id + 1 Это странная практика. Но в моем случае ID -- GUID ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2021, 17:32 |
|
|
start [/forum/topic.php?fid=46&fpage=14&tid=1684305]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 267ms |
total: | 407ms |
0 / 0 |