更新 : November 2007
内部データ アクセスの問題は、非常に一般的なシナリオです。つまり、共通言語ランタイム (CLR) ストアド プロシージャまたは関数を実行しているサーバーにアクセスする場合の問題です。1 つの解決方法は、SqlConnection を使用して接続文字列を作成し、ローカル サーバーをポイントするように接続文字列で指定して、接続を開くことです。これを行うには、ログインするための資格情報を指定する必要があります。接続は、ストアド プロシージャまたは関数とは別のデータベース セッションにあったり、異なる SET オプションが指定されていたり、別のトランザクション内にあったり、一時テーブルを参照しないなどの場合があります。マネージ ストアド プロシージャまたは関数コードが SQL Server プロセス内で実行されている場合、別のユーザーがサーバーに接続して、そのマネージ ストアド プロシージャまたは関数コードを起動する SQL ステートメントを実行していることを意味します。接続のコンテキスト内で、ストアド プロシージャまたは関数をトランザクションや SET オプションなどと共に実行する必要がある場合もあります。これは、コンテキスト接続と呼ばれます。
コンテキスト接続を使用すると、コードが初めに起動されたコンテキスト内で Transact-SQL ステートメントを実行することができます。詳細については、使用する SQL Server のバージョンに対応したバージョンの SQL Server オンライン ブックを参照してください。
SQL Server 2005 |
SQL Server 2008 |
|---|---|