Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SqlFunction не успява да отвори контекстна връзка въпреки наличния DataAccessKind.Read

Проблемът е следният:

  1. SQLCLR не позволява никакъв достъп до данни вътре в TestFillRow

  2. Въпреки че "изглежда", че вашият TestFillRow няма достъп до данни, начинът, по който компилаторът превежда кода с изрази "yield", всъщност отлага изпълнението му до първото извикване .MoveNext() към итератора. Следователно следното твърдение:

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

    се изпълнява вътре в TestFillRow ... което е незаконно.

Не използвайте връщане на доходност; вместо това заредете целия резултат в List<> и връща списъка в края на UD функцията.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Могат ли да се прилагат скаларни функции преди филтриране при изпълнение на SQL оператор?

  2. Как мога да намеря символи Unicode/не-ASCII в поле NTEXT в таблица на SQL Server 2005?

  3. Използване на псевдоними в клаузата Where или алтернативна опция?

  4. Включване на таблици и схеми при изброяване на колоните за идентичност в база данни на SQL Server

  5. Как да сравним, ако два низа съдържат едни и същи думи в T-SQL за SQL Server 2008?