4

トリガーは初めてで、SQLサーバーのデータベーステーブルから値を選択するときにトリガーを起動する必要があります。挿入/更新および削除時にトリガーを起動してみました。値を選択するときにトリガーを起動する方法はありますか?

4

3 に答える 3

4

これを実行できる方法は2つしかなく、どちらもトリガーではありません。

  1. ストアドプロシージャを使用してクエリを実行し、クエリをテーブルやその他の知りたい情報に記録できます。
  2. SQLServerの監査機能を使用できます。

後者は使ったことがないので、使いやすさは言えません。

于 2013-01-30T12:40:38.820 に答える
0

SELECT操作でトリガーを設定する機能はありません。以前の回答で提案されているように、SEECTクエリからフェッチされたパラメータを受け取るストアドプロシージャを記述し、目的のSELECTクエリの後にこのプロシージャを呼び出します。

于 2013-01-30T12:48:04.997 に答える
-2

SpectralGhostの回答は、誰が、または何がどのデータを調べたかのセキュリティ監査のようなことをしようとしていることを前提としています。

しかし、SELECTトリガーが概念的に巧妙であることを知らないほどSQLに慣れていない場合は、他のことをしようとしている可能性があります。その場合、監査ではなくロックについて話していることになります。トランザクションがコミットまたはロールバックされるまで、他のプロセスがアクセスできないようにする特定のレコード(または別のテーブルにある他の関連レコード)を読み取ります。その場合、トリガーは間違いなくあなたの解決策ではありません(それらはめったにありません)。トランザクション制御とロックに関するBOLを参照してください

于 2013-01-30T15:41:24.163 に答える