5

次のコードがあります。

[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();

{"このステートメントは、アセンブリによってアクセスが制限されているデータにアクセスしようとしました。"}

4

2 に答える 2

9

#補足として、 などで作成された一時テーブルにアクセスしようとしている場合は#tmp、 も入れる必要がありますSystemDataAccess = SystemDataAccess.Read。これを回避する別の方法は、共通テーブル式を使用してデータを取得することです。

于 2013-12-13T21:14:04.173 に答える