コンテキスト接続

内部データへのアクセスに関する問題は、ごく一般的なものです。内部データにアクセスすることは、CLR (共通言語ランタイム) ストアド プロシージャや関数を実行しているサーバーへのアクセスを考えることです。これを実現する 1 つの選択肢として、System.Data.SqlClient.SqlConnection を使用して接続を作成し、ローカル サーバーを指す接続文字列を指定して、接続を開く方法があります。これには、ログインのための資格情報を指定することが必要になります。接続が、ストアド プロシージャや関数とは別のデータベース セッションにある場合、SET オプションが異なっている場合、別のトランザクションに存在している場合、一時テーブルを認識しない場合なども考えられます。マネージ ストアド プロシージャや関数のコードが SQL Server プロセスで実行されているということは、だれかがそのサーバーに接続して、マネージ コードを呼び出す SQL ステートメントを実行したことを意味します。このような場合、その接続のコンテキストで、その接続のトランザクションや SET オプションと共存する形で、ストアド プロシージャまたは関数を実行することを考えます。これを "コンテキスト接続" と呼びます。

コンテキスト接続を使用すると、コードを最初に呼び出したのと同じコンテキストで Transact-SQL ステートメントを実行することができます。コンテキスト接続を取得するには、次の例に示すように "context connection" 接続文字列キーワードを使用する必要があります。

[C#]

using(SqlConnection connection = new SqlConnection("context connection=true")) 
{
    connection.Open();
    // Use the connection
}

[Visual Basic]

Using connection as new SqlConnection("context connection=true")
    connection.Open()
    ' Use the connection
End Using

このセクションの内容