1

有利なことに、(を介して)イベントをサブスクライブすると、sp_CreateEventそのイベントはどのレベルで作成されますか?接続ごと?クライアントごと?データベース全体?

アプリケーションは、エラーが原因で広告接続がリセットされることがある、長時間実行されるアプリケーションを使用していることです。新しい接続を作成するときにsp_CreateEvent、再サブスクライブ()に加えて()を再作成する必要がありますか?sp_WaitForEvent

また、特定の接続/アプリケーション/どのレベルのイベントに存在する特定のイベントがすでに存在するかどうかを確認する方法はありますか?

4

1 に答える 1

2

イベントはデータベースレベルごとに作成されますが、イベントを待機する接続では、を使用してイベントを作成する必要がありますsp_CreateEventイベントを作成するのではなく、イベントの接続をsp_CreateEvent 登録するようなものだと考えてください。

すべての接続は、イベントを待機する場合はイベントを作成/登録する必要があるため、エラーが原因で接続が切断されて再作成された場合は、を再度呼び出す必要がsp_CreateEventありsp_WaitForEventます。

イベントが存在するかどうかを単純に確認する方法はありません。おそらく、チェックする最良の方法は、電話をかけsp_WaitForEventてエラーをチェックすることです。すぐに戻す場合は、タイムアウトに0を指定します。sp_CreateEventまたはを呼び出しsp_DropEventてエラーをチェックすることもできますが、イベントが存在するかどうかに関係なく、意図しない結果が生じる可能性があります。

イベントの詳細については、オンラインドキュメントをご覧ください。

于 2012-06-19T20:13:21.720 に答える