Мне нужно настроить триггер, который будет обновлять измененную дату, до текущей даты и времени, но только если имя пользователя или пароль будут изменены. Это 4-й и 5-й столбцы.
Я использовал подсказки из этой темы, чтобы попытаться сделать триггер. На данный момент я просто хотел заполнить таблицу журнала, чтобы проверить, правильно ли она работает. В конце концов, я бы включил вставку в журналы в оператор обновления для обновления даты изменения: Триггер обновления SQL только при изменении столбца
CREATE TRIGGER dbo.updUserData
ON tblUserInfo
AFTER UPDATE
AS
DECLARE @USR VARCHAR(8000)
DECLARE @PW VARCHAR(8000)
IF (COLUMNS_UPDATED() & 25) > 0
BEGIN
SELECT @USR = UI.UserName
FROM .[dbo].[tblUserInfo] UI
INNER JOIN Inserted I ON UI.ID = I.ID
WHERE UI.UserName <> I.UserName
SELECT @PW = EC.Password
FROM [dbo].[tblUserInfo] UI
INNER JOIN Inserted I ON UI.ID = I.ID
WHERE UI.Password <> I.Password
INSERT INTO logs
VALUES ('USERNAME ' + @USR + 'OR PASSWORD CHANGED ' + @Pw)
END
Когда я изменяю 4-й или 5-йстолбец, я получаю новую запись в таблице журналов, но строка NULL. Он не вставляет строку, но ограничивает создание записи NULL только при изменении одного из этих двух столбцов. Этого достаточно для того, чтобы я знал, что это захватывает правильное действие, но я хотел посмотреть, смогу ли я заставить это работать и вставить фактическую строку в таблицу журналов, поскольку я думал, что это было бы хорошим упражнением для меня, чтобы получить право.
Если кто-нибудь может помочь мне пройти через финишную черту, я буду рад помощи.
Спасибо.