2009-04-02 10 views
2

J'essaye de créer un UDF CLR qui prend une valeur de chaîne séparée comme "Mike | John | Smith". Dans l'UDF, j'analyse les valeurs et les renvoie dans un DataTable. Le code C# se construit très bien et je peux créer l'assembly en SQL pointant vers la DLL sans problème.CLR SQL Server UDF Question

Un problème survient lorsque j'essaie, selon cette source, de dire à SQL Server comment faire correspondre une requête Transact SQL avec une fonction CLR. http://www.setfocus.com/technicalarticles/clrfunctionforsqlserver_2.aspx

ou si je devais même faire cela? Fondamentalement, je veux prendre une chaîne, analyser les valeurs séparées et les mettre dans une table DB avec 3 colonnes différentes, FN, MN, LN. en utilisant un UDF CLR.

Répondre

3

Vous devez disposer d'une procédure ou d'une fonction stockée SQL qui appelle l'assembly. Les paramètres de la procédure stockée SQL et la fonction .NET doivent correspondre. Ainsi, par exemple, si votre assembly .NET a la fonction suivante:

[SqlProcedure] 
public static void ProcessData(string myString_) 
{ 
} 

votre procédure stockée SQL ou fonction devraient ressembler à ce qui suit:

CREATE PROCEDURE dbo.ProcessMyData (@InputText AS NVARCHAR(MAX)) 
AS EXTERNAL NAME SqlAssemblyName.ClassName.ProcessData 
GO