Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Passar tabela como parâmetro para SQLCLR TV-UDF


Acontece que há uma lista fixa de entradas válidas em uma função SQLCLR, determinada pelo mapeamento entre tipos de dados .NET e tipos de dados SQL

O tipo de dados SQL "table" é explicitamente chamado de sem mapeamento através do CLR.

Portanto, não é possível passar dados com valor de tabela para uma função CLR com valor de tabela como parâmetros de método.

Alternativas

Parece possível obter dados tabulares via select ... for xml contorções para alimentar um SqlXml parâmetro.

Eu usei com sucesso SqlConnection conn = new SqlConnection("context connection = true"); no código .NET para permitir que o TVF consulte o banco de dados para obter os dados tabulares necessários.