2011-07-27 15 views
7

Durante la scrittura di una funzione CLR Server Sql è possibile utilizzare gli spazi dei nomi?Funzioni CLR del server Sql

namespace SomeName1.SomeName2 
{ 
    public static class SomeClass 
    { 
     [SqlFunction] 
     public static SqlString SomeMethod(SqlString input) 
     { 
      // .... 
     } 
    } 
} 

Se sì, come chiamiamo questa funzione da SqlServer. In altre parole, come chiamiamo le funzioni CLR da SQL Server con namespace?

risposta

7

Sì, è assolutamente possibile:

CREATE FUNCTION SomeMethod(@input VarChar(200)) 
RETURNS VarChar(200) WITH EXECUTE AS CALLER AS 

EXTERNAL NAME [SomeName1.SomeName2].[SomeName1.SomeName2.SomeClass.SomeMethod] 

Dove [SomeName1.SomeName2] nella prima parte è l'assemblea come nome in SQL Server, e il resto ([SomeName1.SomeName2.SomeClass.SomeMethod]) è il nome della funzione completo, compreso lo spazio dei nomi.

Per inciso, se si esegue la distribuzione da Visual Studio, questo viene gestito in gran parte.

+2

L'ho appena capito. Stavo per rispondere. [AssemblyName] [Namespace.Class]. [Metodo]. Grazie ! – Debjit

+1

Sarebbe effettivamente [AssemlyName] quindi il resto va come [SomeName1.SomeName2.SomeClass]. [SomeMethod] – Debjit

+0

Corretto. Suppongo che il nome del tuo assembly segua quello del namespace definito qui. – Yuck

Problemi correlati