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

別のテーブルのレコードを更新する更新トリガー

    このようなものが必要です-セットベース UPDATE でそれを考慮したソリューション ステートメント、複数の行を更新している可能性があります 一度に、したがってトリガーも Inserted の複数の行を処理する必要があります そしてDeleted

    CREATE TRIGGER [dbo].[updateUserId] 
    ON [dbo].[User_TB]
    FOR UPDATE
    AS 
        -- update the "Break" table - find the rows based on the *old* User_Id
        -- from the "Deleted" pseudo table, and set it to the *new* User_Id
        -- from the "Inserted" pseudo table
        SET User_Id = i.User_Id 
        FROM Inserted i
        INNER JOIN Deleted d ON i.TID = d.TID
        WHERE
            Break_TB.User_Id = d.User_Id
    
        -- update the "Log" table - find the rows based on the *old* User_Id
        -- from the "Deleted" pseudo table, and set it to the *new* User_Id
        -- from the "Inserted" pseudo table
        UPDATE Break_TB 
        SET User_Id = i.User_Id 
        FROM Inserted i
        INNER JOIN Deleted d ON i.TID = d.TID
        WHERE
            Break_TB.User_Id = d.User_Id
      

    このコードは前提です その TID User_TB の列 テーブルは主キーです これは更新中も同じままです (Deleted の「古い」値を結合できるようにするため) Inserted に格納された、更新後の「新しい」値を持つ疑似テーブル 擬似テーブル)




    1. MySql更新ステートメントでローカル変数を設定する方法(構文?)

    2. 私は本当にmysqlインジェクションを理解していませんか?それは何ですか?

    3. PostgreSQLで列を動的に生成する

    4. sun.security.validator.ValidatorException:Java> 1.6で、PKIXパスの構築に失敗しました