尝试从SQL CLR内部执行sql时出错

时间:2013-03-29 22:59:35

标签: sqlclr

我有以下代码:

[SqlFunction(DataAccess = DataAccessKind.Read, SystemDataAccess = SystemDataAccessKind.Read)]
    public static int GetInt()
    {
        int retValue = 0;
        using (SqlConnection conn = new SqlConnection("context connection = true"))
        {
            conn.Open();
            SqlCommand cmd = conn.CreateCommand();
            cmd.CommandText = "select MyInt from SomeTable";
            object timeOut = cmd.ExecuteReader(); // <- error happen here

        }
        return retValue;

    }

我在

中收到以下异常
cmd.ExecuteReader();
  

{“此语句试图访问其访问受程序集限制的数据。”}

2 个答案:

答案 0 :(得分:8)

作为旁注,如果您尝试访问使用#创建的临时表,例如#tmp,则还需要输入SystemDataAccess = SystemDataAccess.Read。另一种方法是使用公用表表达式来获取数据。

答案 1 :(得分:6)

我需要将DataAccess = DataAccess.Read添加到函数属性中才能执行此操作。