CLR上下文连接有哪些限制

时间:2009-03-17 20:07:16

标签: sqlclr

我正在尝试将一些现有的C#代码转换为CLR存储过程。要使用的明显连接字符串是上下文连接(“context connection = true”)。

我遇到的问题是某些事情显然不适用于此连接类型。最新的事情是SqlConnection.GetSchema方法失败。该错误只表示它在上下文连接上不可用。是否存在某些无法在上下文连接上工作的列表?

3 个答案:

答案 0 :(得分:4)

您可能已经在MSDN SQL Server 2008 Books Online中遇到过此问题,但是,以下链接解释了使用Context Connections时所施加的限制:

  

Restrictions on Regular and Context Connections

如果发布完整的异常和堆栈跟踪,则可以从.NET FX程序集(使用.NET Reflector)或使用SQL 2005/2008部署的那些程序中确定为什么会抛出此异常。

答案 1 :(得分:2)

有人可能会觉得这很有用:

    System.Data.DataTable schema = null;
    using (System.Data.SqlClient.SqlCommand cmd = database.Connection.CreateCommand())
    {
        cmd.CommandText = string.Format( "SELECT TOP 1 * FROM {0}", mainTable );
        cmd.CommandType = System.Data.CommandType.Text;
        using (System.Data.SqlClient.SqlDataReader rdr = cmd.ExecuteReader())
        {
            schema = rdr.GetSchemaTable();
        }
    }

答案 2 :(得分:1)

经过一些更多的搜索后,我发现这个列表不适用于上下文连接here。其中一些也记录在上面的SQL Books链接中,但它没有全部提及。

不能与上下文连接一起使用的东西。

  • ChangePassword方法
  • GetSchema方法
  • 连接池及相关参数和方法
  • 使用数据库镜像时的透明故障转移
  • 客户端统计信息PacketSize,WorkstationID和其他客户端信息