-3

重複の可能性:
SQL Server:更新/挿入された行にのみ影響するトリガーを作成するにはどうすればよいですか?

  Table User
  Userid(number)
  is_updated(char)

  Table Version
  Version_number(number)
  userid(number)

バージョンテーブルに値を挿入/更新する場合、トリガーを使用してis_updated列を更新したいのですが、更新/挿入された行のユーザーIDを取得するにはどうすればよいですか?

トリガーを使うのはこれが初めてです誰かが私を助けることができます

4

1 に答える 1

0

このような質問を投稿する前に、 CREATETRIGGERステートメントに関するオンラインブックのドキュメントを確認する必要があります。トリガーは、挿入および削除された2つの特別な仮想テーブルを継承する特別なストアドプロシージャにすぎません。したがって、次のようなものを試してください。

create trigger dbo.version_TR01
on             dbo.version
for insert, update
as
begin

  --
  -- make sure everybody has a row in the user table
  --
  insert dbo.[user]( user_id , is_updated )
  select i.user_id , 'F'
  from inserted i
  where not exists ( select *
                     from dbo.[user] u
                     where u.user_id = i.user_id
                   )

  --
  -- mark everybody as updated
  --
  update dbo.[user]
  set is_updated = 'T'
  from dbo.[user] u
  join inserted   i on i.user_id = u.user_id

end

それはそれについてする必要があります。

于 2012-07-30T18:02:41.053 に答える