Несколько триггеров на столе - PullRequest
0 голосов
/ 05 января 2020

Я использую MS SQL Server Management Studio 2017. У меня есть один триггер (trigg_1), который вставляет в table_1 столбец col_1 (от FK до таблицы table_2) значение из другой таблицы (table_2). Trigg_1 работает, когда я вставляю некоторые значения, trigg_1 вставляет значение в col_1. Теперь мне нужен еще один триггер trigg_2, который не позволит мне изменить col_1. Если я отключу trigg_1, trigg_2 работает.

CREATE TRIGGER [dbo].[trigg_1]
   ON  [dbo].[table_1] 
   AFTER INSERT
AS 
BEGIN

update table_1
set col_1=(select col_2 from table_2 where table_1.IDc1=table_2.IDc2);

END

Это работает, но когда я хочу, чтобы в EDIT TOP 200 ROWS изменилось значение (теперь это не NULL, потому что trigg_1 вставленное значение) col_1, мне нужно trigg_2.

1 Ответ

0 голосов
/ 08 января 2020

Если вам известны зависимости таблицы, из которой запускается вставка обновления, тогда вы можете использовать предложение вывода при вставке и обновлении, а также сохранить во временной таблице и использовать соответственно. Вы можете сослаться на это https://www.sqlservercentral.com/articles/the-output-clause-for-update-statements.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...