Sqlclr 尝试从sql CLR内部执行sql时出错
我有以下代码:Sqlclr 尝试从sql CLR内部执行sql时出错,sqlclr,Sqlclr,我有以下代码: [SqlFunction(DataAccess = DataAccessKind.Read, SystemDataAccess = SystemDataAccessKind.Read)] public static int GetInt() { int retValue = 0; using (SqlConnection conn = new SqlConnection("context connection = true"))
[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;
}
{“此语句试图访问其访问受程序集限制的数据。”}
我需要添加DataAccess=DataAccess。读取函数属性才能这样做。作为旁注,如果您试图访问使用
创建的临时表,例如\tmp
,您还需要输入SystemDataAccess=SystemDataAccess.Read
。另一种解决方法是使用公共表表达式获取数据。这不再是问题,我解决了!
cmd.ExecuteReader();