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"