Я делаю простой стол с именами, сообщениями электронной почты и т. Д., Но у меня также есть ModifiedDate
. Моя идея - использовать триггер после вставки и обновления и вставить текущую дату. Таким образом, если кто-либо делает что-либо (кроме удаления) в этот столбец, дата должна отражать это.Trigger on insert and update, добавляющий дату модификации
Это, однако, не работает.
CREATE TRIGGER ModDate
ON X
AFTER INSERT, UPDATE
AS
BEGIN
INSERT INTO X (ModifiedDate)
VALUES (GETDATE())
END
Теперь у меня есть пара значений, которые не могут быть пустыми, и что это, кажется, нужно сделать, это попытаться создать новую строку. Я хотел бы, чтобы он вставлял дату в строку, на которую в настоящее время действует, я понятия не имею, как это сделать. Также, если я добавлю сразу 5 строк?
Конечно, это создает новую строку, у вас есть инструкция INSERT. Если вы хотите перехватить вставку и/или обновление, чтобы изменить одно из значений, вам нужно будет использовать триггер INSTEAD. Затем для обработки операций с несколькими строками вам необходимо создать код запуска, чтобы он ссылался на вставленную виртуальную таблицу. Я бы рекомендовал использовать два триггера, а не один. Или еще лучше было бы поместить эту логику в вашу процедуру. –
@SeanLange Как бы поместить эту логику в мою «процедуру»? – Kalec
Я предполагал, что вы используете процедуры для обновления и вставки, но это может быть не так. :) –