您好我在MSSQL 2008中使用简单触发器遇到了一些困难。
我想将删除的行插入另一个表。
这是我的触发器代码:
use databasex;
GO
CREATE TRIGGER DeleteEmployee
ON Employees
FOR DELETE
AS
BEGIN
INSERT INTO DeletedEmployees (Name, Surname, Function)
VALUES (deleted.Name, deleted.Surname, deleted.Function)
END
员工表:
Name Surname Function ...
DeletedEmployees表:
Name Surname Function ...
我需要以某种方式指定已删除的列来自已删除的表,但是如何?
我不想为每一列编写子查询。
如何完成?
ps:有没有关于使用触发器的好教程?我相信我将来需要写更多的触发器。
答案 0 :(得分:2)
DELETED
是您选择的虚拟表(您可能删除了多行,因此单个值不够)
此外,FUNCTION
是保留字,需要转义
CREATE TRIGGER DeleteEmployee
ON Employees
FOR DELETE
AS
BEGIN
INSERT INTO DeletedEmployees (Name, Surname, [Function])
SELECT Name, Surname, [Function] FROM deleted
END