コンテキスト接続
内部データへのアクセスに関する問題は、ごく一般的なものです。内部データにアクセスすることは、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
このセクションのトピックでは、次の内容について説明します。
トピック | 説明 |
---|---|
通常の接続とコンテキスト接続の違いについて説明します。 |
|
通常の接続とコンテキスト接続の制限事項について説明します。 |