0

同じデータを持つ同じ列を持つProducts別のテーブルのデータの変更 (新しいデータ) を更新するトリガーを作成する必要がある1 つのテーブルがあります。Products_audit

私は次のことを試しました:

CREATE TRIGGER Super 

ON Products 

AFTER INSERT, UPDATE

AS

UPDATE Product_audit (Column1,Column2, Column3, ... )

SELECT (Column1,Column2,Column3,...)

FROM Products

次のエラーが表示されます。

Server: Msg 170, Level 15, State 31, Procedure Super, Line 20
Line 20: Incorrect syntax near '('.
Server: Msg 170, Level 15, State 1, Procedure Super, Line 24
Line 24: Incorrect syntax near ','.

私はSQL Server 2000を使用しています

私はトリガーの作成が得意ではありません。訂正してください。どこが間違っていたのか知​​りたいのですが。

4

2 に答える 2

0

次のようにする必要があると思います:

CREATE TRIGGER Super 

ON Products 

AFTER INSERT, UPDATE

AS

UPDATE Product_audit 

SET Column1 = p.Column1
SET Column2 = p.Column2

FROM Products p
于 2013-03-26T08:52:08.693 に答える
0

こんにちは、更新用と挿入用の 2 つの異なるトリガーを作成する必要があります。1) 挿入用

CREATE TRIGGER Super
ON Products
AFTER INSERT
AS
BEGIN

INSERT INTO Product_audit 
(Column1,Column2,...)
SELECT Column1,Column2,...
FROM Inserted

END

2) 更新の場合

 CREATE TRIGGER Super
    ON Products
    AFTER Update
    AS
    BEGIN

    DECLARE @Column1 as varchar(10)
    DECLARE @Column2 as varchar(10)
    DECLARE @ID INT

    SELECT @ID=ID,@Column1=Column1,@Column2=Column2 FROM INSERTED 



   UPDATE Product_audit  SET Column1=@Column1,Column2=@Column2
   WHERE ID=@ID

    END
于 2013-03-26T08:53:23.273 に答える