2013-07-10 184 views
0

您好,我在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:有沒有使用觸發器的好教程?我相信我將來需要編寫更多觸發器。

回答

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 

An SQLfiddle to test with

+1

哇謝謝:-) – Muflix