SQL Server 2008 R2 で Service Broker を使用しており、次のような複数の選択ステートメントを持つストアド プロシージャを登録しています。
SELECT
A.Date
,A.Id
FROM
dbo.Appointment A
SELECT
P.Name
FROM
dbo.Person P
C# オブジェクト SqlDependency または SqlNotificationRequest を使用してクエリを登録すると、クエリ内の各 select ステートメントに対して sys.conversation_endpoints テーブルに 1 つのエントリが取得されます。したがって、上記のクエリでは、2 つのエンドポイントが追加されています。dbo.Appointment テーブルに行を挿入すると、最初のクエリに関連するエンドポイントに 1 つの通知が配信されます。次に、@conversation_handle で END CONVERSATION を呼び出しますが、これをストアド プロシージャとして登録したので、2 番目のクエリの会話も終了させたいと考えています。両方のエントリが異なる conversation_group_id 列を持っているため、これを行う方法がわかりません。
SqlDependency/SqlNotificationRequest を使用してこれを行う方法はありますか? または、ストアド プロシージャで会話グループを手動でセットアップし、SqlDependency/SqlNotificationRequest の使用を停止する必要がありますか?