コンテキスト接続
内部データ アクセスの問題は、非常に一般的なシナリオです。 つまり、共通言語ランタイム (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
このセクションの内容
通常の接続とコンテキスト接続
通常の接続とコンテキスト接続の違いについて説明します。
通常の接続とコンテキスト接続に関する制限事項
通常の接続とコンテキスト接続の制限事項について説明します。