Число триггеров SQL Server обновленных столбцов до обновления - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть таблица "Users" с (id, имя, фамилия, dni, dob, city и lastUpdated)

Что я хочу сделать, это выполнить триггер INSTEAD OF UPDATE и в нем считатьколичество столбцов, которые будут обновлены, и если единственный столбец, который будет обновлен, это столбец "lasUpdated", то ничего не обновляйте.

CREATE TRIGGER USER_TRIGGER
ON USERS
INSTEAD OF UPDATE
AS
/* if the updated column is ONLY lasUpdated */
IF (COUNT(UPDATED_CLOUMNS) == 1 && UPDATED_COLUMN == "lasUpdated")
BEGIN 
ROLLBACK TRANSACTION
RETURN 
END
GO

Есть идеи, как этого добиться?Заранее спасибо.

1 Ответ

0 голосов
/ 27 ноября 2018

Одним из способов является обновление в триггере INSTEAD OF с помощью:

WHERE inserted.Col1<>deleted.Col1
OR inserted.Col2<>deleted.Col2
etc, for all columns except "lasUpdated"

Обратите внимание, что если какой-либо из столбцов может иметь значение NULL, вам придется обрабатывать это и в логике.

...