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

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

上下文连接的限制

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

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

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

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

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

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

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

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

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

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

常规连接的限制

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

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

  • SqlDependency 不支持对象。

另请参阅

上下文连接