sql >> Base de Datos >  >> RDS >> Sqlserver

SqlFunction no puede abrir la conexión de contexto a pesar del presente DataAccessKind.Read

El problema es el siguiente:

  1. SQLCLR no permite ningún acceso a datos dentro de TestFillRow

  2. A pesar de que "parece" que su TestFillRow no accede a los datos, la forma en que el compilador traduce el código con declaraciones de "rendimiento" es aplazando su ejecución hasta la primera llamada .MoveNext() al iterador. Por lo tanto, la siguiente declaración:

    using (SqlConnection con = new SqlConnection("context connection=true"))        
    

    se ejecuta dentro de TestFillRow ... lo cual es ilegal.

No utilice rendimiento de rendimiento; en su lugar, cargue el resultado completo en una List<> y devolver la lista al final de la Función UD.