我写了一个触发器,它在删除它的行复制值并将它们粘贴到另一个表中,但我的任务也是使多个行有效时(我不知道它应该是一个触发器)的工作已删除,我不知道应该如何处理。
CREATE TRIGGER copy ON person FOR DELETE
AS
DECLARE @firstname VARCHAR(20), @lastname VARCHAR(35), @pesel CHAR(11), @birthdate DATE, @salary MONEY
SELECT @firstname=firstname, @lastname=lastname, @pesel=pesel, @birthdate=birthdate, @salary=salary FROM deleted
INSERT INTO person_history VALUES(@firstname,@lastname,@pesel,@birthdate,@salary, 'D', GETDATE())
GO
答案 0 :(得分:4)
使用insert . . . select
:
INSERT INTO person_history ( . . . )
SELECT firstname, lastname, pesel, birthdate, salary, 'D', GETDATE()
FROM deleted;
. . .
用于包含要插入的列。这是一种最佳做法。