0

削除された行をテーブルTable_AからTable_Bに挿入する必要があります。これらの行は同じ構造
(ごみ箱など)ですが、SQLSERVERトリガーの経験があまりありません。

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

私の経験の湖を惜しまないでください。ありがとう。

4

2 に答える 2

6

「INSTEADOF」トリガーは必要ありません。「AFTER」トリガーが必要です。

与えられたテーブルTableA....

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

および対応するTableB..。

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
于 2012-10-16T14:17:41.627 に答える
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

この場合、トリガーの代わりにトリガーは必要ないと思います。

于 2012-10-16T14:06:31.257 に答える