次の方法で共有


コンテキスト接続

適用対象:SQL Server

内部データ アクセスの問題は、非常に一般的なシナリオです。 つまり、共通言語ランタイム (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  
  

このセクションの内容

通常の接続とコンテキスト接続
通常の接続とコンテキスト接続の違いについて説明します。

通常の接続とコンテキスト接続に関する制限事項
通常の接続とコンテキスト接続の制限事項について説明します。