通常の接続とコンテキスト接続に関する制限事項
このトピックでは、コンテキストと通常の接続を介してSQL Serverプロセスで実行されるコードに関連する制限について説明します。
コンテキスト接続に関する制限事項
アプリケーションを開発するときは、コンテキスト接続に適用される次の制限事項を考慮してください。
特定の接続に対して特定の時点に開くことができるコンテキスト接続は 1 つだけです。 複数のステートメントをそれぞれ独立した接続で同時に実行する場合、その中の 1 つの接続しか独自のコンテキスト接続を取得できません。 この制限事項は、異なる接続からの同時実行要求には影響しません。つまり、特定の接続の特定の要求にしか影響しません。
コンテキスト接続では、MARS (複数のアクティブな結果セット) がサポートされません。
コンテキスト接続では、
SqlBulkCopy
クラスを使用できません。コンテキスト接続では、更新バッチ処理がサポートされません。
SqlNotificationRequest
は、コンテキスト接続に対して実行するコマンドと併用できません。コンテキスト接続に対して実行しているコマンドはキャンセルできません。
SqlCommand.Cancel
メソッドでは、この要求が暗黙に無視されます。"context connection=true" を使用する場合は、他の接続文字列キーワードを使用できません。
プロパティは
SqlConnection.DataSource
、 の接続文字列SqlConnection
が、SQL Serverのインスタンスの名前ではなく、"context connection=true" の場合は null を返します。コンテキスト接続に対してコマンドを実行する場合に
SqlCommand.CommandTimeout
プロパティを設定しても、影響はありません。
通常の接続に関する制限事項
アプリケーションを開発するときは、通常の接続に適用される次の制限事項を考慮してください。
内部サーバーに対する非同期コマンドの実行はサポートされません。 コマンドの接続文字列に "async=true" を含めてコマンドを実行すると、
System.NotSupportedException
がスローされます。 "SQL Server プロセス内で実行されている場合、非同期処理はサポートされていません" というメッセージが表示されます。SqlDependency
オブジェクトはサポートされません。