2012-10-16 31 views
0

删除的行我需要插入从表表-A到表-B被删除的行具有相同的结构
(类似回收站),但我没有在SQL SERVER多少经验触发插入扳机

CREATE TRIGGER dbo.Table_A_Delete_Instead_Of_Trigger 
ON dbo.Table_A 
INSTEAD OF DELETE 
AS 
BEGIN  
    INSERT INTO Table_B 
    SELECT T 

    DELETE T     
END 

请留意我的经验之湖。谢谢。

回答

6

你不需要'INSTEAD OF'触发器,你需要一个'AFTER'触发器。

给定一个表表A ...

CREATE TABLE [dbo].[TableA](
    [Col1] [varchar](50) NOT NULL, 
    [Col2] [varchar](50) NOT NULL 
) ON [PRIMARY] 

和相应的表B ...

CREATE TABLE [dbo].[TableB](
    [Col1] [varchar](50) NOT NULL, 
    [Col2] [varchar](50) NOT NULL 
) ON [PRIMARY] 

然后下面的触发会做你希望的东西:

CREATE TRIGGER trg_TableA_Archive 
ON TableA 
AFTER DELETE 
AS 

    INSERT INTO TableB 
    SELECT * 
    FROM deleted 
GO 
2

试试这个:

CREATE TRIGGER dbo.Table_A_Delete_Instead_Of_Trigger 
ON dbo.Table_A 
AFTER DELETE 
AS 
BEGIN  
    INSERT INTO Table_B 
    SELECT * FROM 
    DELETED;   
END 

我觉得你并不需要一个INSTEAD OF触发器在这种情况下。