1

テーブルに削除トリガーがあり、関数 HOST_NAME() を使用してアクションを実行したユーザーを取得し、そうでない場合はユーザーテーブルにユーザーが存在することを確認し、Raiserror をスローします。アクションは ASP.NET Web アプリケーションから実行されます。このアプリケーションでは、「ワークステーション ID」を接続文字列に動的に追加して、現在ログに記録されているユーザー名を削除トリガーに含めます。

問題は、SSMS からいくつかのスクリプトを手動で実行する必要がある場合があり、Host_Name() には SQL サーバーに現在ログインしているユーザーの名前が含まれていますが、このユーザーにはユーザー テーブルに対応する行がなく、Raiserror が発生したことです。問題は、Rairserror がなくても SSMS から削除スクリプトを実行するにはどうすればよいかということです。

4

1 に答える 1

0

答えは非常に簡単です。Host_Name() をオーバーライドするカスタム関数を作成し、Host_Name() に XYZ という名前のユーザーが含まれている場合、User テーブルに対応する行を持つシステム ユーザーの定数名を返します。

于 2012-04-28T14:55:48.387 に答える