Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Passer la table en paramètre à SQLCLR TV-UDF

Il s'avère qu'il existe une liste fixe d'entrées valides sur une fonction SQLCLR, déterminée par le mappage entre les types de données .NET et les types de données SQL

Le type de données SQL "table" est explicitement appelé comme n'ayant aucun mappage via le CLR.

Par conséquent, il n'est pas possible de transmettre des données table dans une fonction CLR table en tant que paramètres de méthode.

Alternatives

Il semble possible d'obtenir des données tabulaires via select ... for xml contorsions pour alimenter un SqlXml paramètre.

J'ai utilisé avec succès SqlConnection conn = new SqlConnection("context connection = true"); dans le code .NET pour laisser le TVF interroger la base de données pour les données tabulaires dont il a besoin.