本主题讨论通过上下文和常规连接在 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不支持对象。