上下文连接和常规连接 - 限制

适用范围:SQL Server

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

对上下文连接的限制

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

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

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

  • SqlBulkCopy 类在上下文连接中不运行。

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

  • SqlNotificationRequest 不能与针对上下文连接执行的命令一起使用。

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

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

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

  • 在对上下文连接执行命令时, 设置 SqlCommand.CommandTimeout 属性不起作用。

对常规连接的限制

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

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

  • 不支持 SqlDependency 对象。

另请参阅

上下文连接