- - PR -
トリガの制御に関して (SQL Server200)
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-08-05 01:03
現在SQLServer2000のデータベースの設計をしているのですが、
トリガに関してちょっと困っております。 SQLコマンドを実行したり、EnterpriseManager等を利用して データを更新した場合(つまり手動)と、ストアドプロシージャから データを更新した場合とで、トリガの制御の流れを変えたいのです。 そこでネストレベルのグローバル変数を監視してみたのですが どうやらQueryAnalyzerからSQLコマンドを実行して更新した時と EnterpriseManagerからデータを更新した場合、ストアドプロシージャから 更新した場合とで、まちまちな結果が返ってきて、 結局これは利用できないとわかりました。 現在はとりあえずストアドプロシージャ専用のアカウントを 作成し、該当アカウントかどうかで判断するFunctionを呼び出して 流れを変えることにとりあえず成功したのですが、なんかすっきりしません。 将来顧客が新しいユーザーを作成した場合、このままだと Functionの更新を行う必要が出てきてしまうからです。 (まあ最終的にはsp_helprolememberをfetchするかもしれません) そこで、根本的な質問ではあるのですが ・ストアドプロシージャからトリガの起動を抑制することは可能なのか (dbo以外のユーザーで) ・トリガを起動しているのがユーザーストアドプロシージャに よるものかそうでないかを判断する方法があるか についてご存知の方がおられましたら、教えていただけると助かります。 [ メッセージ編集済み 編集者: べーちゃん 編集日時 2004-08-05 01:07 ] |
1