このようなものが必要です-セットベース 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
に格納された、更新後の「新しい」値を持つ疑似テーブル 擬似テーブル)