对常规连接和上下文连接的限制

本主题讨论通过上下文和常规连接在 Microsoft SQL Server 进程中执行的代码所关联的限制。

对上下文连接的限制

开发应用程序时,请考虑应用于上下文连接的以下限制:

  • 对于给定的连接,在给定的时间,您只能打开一个上下文连接。如果有多个语句并发运行在单独的连接中,则其中的每个语句都可以获得自己的上下文连接。此限制不影响来自不同连接的并发请求;它只影响对给定连接的给定请求。

  • 上下文连接中不支持多个活动结果集 (MARS)。

  • SqlBulkCopy 类不能在上下文连接中工作。

  • 不支持上下文连接中的更新批处理

  • SqlNotificationRequest 不能用于对上下文连接执行的命令。

  • 不支持取消正在对上下文连接运行的命令。SqlCommand.Cancel 方法会自行忽略请求。

  • 使用“context connection=true”时,不能使用任何其他连接字符串关键字。

  • 如果 SqlConnection 的连接字符串为“context connection=true”,则 SqlConnection.DataSource 属性返回 Null,而不是 SQL Server 实例的名称。

  • 对上下文连接执行命令时,设置 SqlCommand.CommandTimeout 属性无效。

对常规连接的限制

开发应用程序时,请考虑应用于常规连接的以下限制:

  • 不支持对内部服务器异步执行命令。如果在命令的连接字符串中包括“async=true”,然后执行命令,将导致引发 System.NotSupportedException。将出现此消息:“在 SQL Server 进程内运行时,不支持异步处理。”

  • 不支持 SqlDependency 对象。

请参阅

概念