[DB] Creare Stored Procedure CLR

Come far sì che SQL2005 possa richiamare una funzione CLR che abbiamo scritto e compilato in un Assembly? I passaggi sono 2, ma gli eventuali messaggi di errore possono essere un po' oscuri quindi me li segno...

Il primo passaggio è registrare l'Assembly che racchiude la nostra funzione; il comando T-SQL è semplice (e anche intuitivo) ed è

CREATE ASSEMBLY nome_assembly_in_sql FROM 'path_e_nome_assembly_con_estensione'

L'alternativa è usare l'interfaccia che mette a disposizione il Sql Server Management Studio: Programmability -> Assemblies tasto destro e "New Assembly...".

Il secondo passaggio è la registrazione del metodo come Stored Procedure:

CREATE PROCEDURE nome_procedura_in_sql AS EXTERNAL NAME nome_assembly_in_sql.classe_con_namespace.metodo

es. CREATE PROCEDURE myProc AS EXTERNAL NAME mioAssembly.mioNamespace.miaClasse.mioMetodo

ma mi restituisce come errore "Incorrect syntax near '.'."

Vicino al punto? Quale punto? se il mio assembly si chiama MiaAzienda.NomeAssembly e il NameSpace è simile il nome sarebbe MiaAzienda.NomeAssembly.PrimoNamespace.SecondoNamesapce.Classe.Metodo: ne ho un po' di punti...

Il trucco è racchiudere i "blocchi" del nome tra parentesi quadre;

CREATE PROCEDURE myProc AS EXTERNAL NAME [mioAssembly].[mioNamespace.miaClasse].[mioMetodo]

Alcune puntualizzazioni: come riportato su MSDN "The specified method must be a static method of the class"

Print | posted @ Thursday, September 14, 2006 2:59 PM

Comments have been closed on this topic.