2011-07-27 11 views
7

Al escribir una función CLR Sql Server ¿podemos usar espacios de nombres?Sql Server CLR Funciones

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

Si es así, ¿cómo llamamos a esta función desde SqlServer? En otras palabras, ¿cómo llamamos a las funciones CLR de SQL Server con espacios de nombres?

Respuesta

7

Sí, a pesar de todo puede:

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

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

Dónde [SomeName1.SomeName2] en la primera parte es la asamblea como el nombre de SQL Server, y el resto ([SomeName1.SomeName2.SomeClass.SomeMethod]) es el nombre de la función completa, incluido el espacio de nombres.

Dicho sea de paso, si despliega desde Visual Studio maneja mucho de esto para usted.

+2

Acabo de descubrirlo. Estaba a punto de responder eso. [AssemblyName] [Namespace.Class]. [Método]. Gracias ! – Debjit

+1

En realidad sería [AssemlyName] y el resto será [SomeName1.SomeName2.SomeClass]. [SomeMethod] – Debjit

+0

Correcto. Supongo que su nombre de conjunto sigue el del espacio de nombres que se define aquí. – Yuck

Cuestiones relacionadas