Sql server触发器一次删除几行

时间:2017-03-13 21:03:04

标签: sql sql-server triggers

我写了一个触发器,它在删除它的行复制值并将它们粘贴到另一个表中,但我的任务也是使多个行有效时(我不知道它应该是一个触发器)的工作已删除,我不知道应该如何处理。

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

1 个答案:

答案 0 :(得分:4)

使用insert . . . select

INSERT INTO person_history (  . . . ) 
    SELECT firstname, lastname, pesel, birthdate, salary, 'D', GETDATE()
    FROM deleted;

. . .用于包含要插入的列。这是一种最佳做法。