sql >> データベース >  >> RDS >> Sqlserver

同じテーブルSQL Server 2005の他の列に列の値を挿入するトリガーを作成します

    このトリガーを試してください (ColumbB に値が挿入されるか、ColumbB の値が更新されると、ColumnB から ColumnA に値がコピーされます):

    CREATE TRIGGER trgIU_triggertestTable_UpdateColumnAWhenColumnB
       ON  dbo.triggertestTable
       AFTER INSERT,UPDATE
    AS 
    BEGIN
        -- SET NOCOUNT ON added to prevent extra result sets from
        -- interfering with SELECT statements.
        SET NOCOUNT ON;
    
        IF UPDATE(ColumnB)
        BEGIN
            UPDATE  dbo.triggertestTable
            SET     ColumnA=i.ColumnB
            FROM    inserted i
            INNER JOIN dbo.triggertestTable t ON i.MyID=t.MyID
            LEFT JOIN deleted d ON i.MyID=d.MyID
            WHERE   d.MyID IS NULL AND i.ColumnB IS NOT NULL -- Row was inserted
            OR      d.MyID IS NOT NULL -- Row was updated
        END
    END
    GO
    

    このテーブルを使用しました:

    CREATE TABLE dbo.triggertestTable(
        MyID INT IDENTITY(1,1) PRIMARY KEY, -- MyID should be a PRIMARY KEY or a mandatory(NOT NULL) UNIQUE constraint
        ColumnA VARCHAR(100),
        ColumnB VARCHAR(100)
    );
    GO
    


    1. SQL Serverの削除ステートメント:テーブルから1つまたは複数の行を削除する方法

    2. Oracleで2つの列の比較を1つの列として選択する方法

    3. ファイルがフォルダに到着したときにSSISパッケージを実行する方法

    4. T-SQL:連結された文字列を引数としてストアド プロシージャに渡すことはできません