2011-07-27 15 views
7

Podczas pisania funkcji CLR Serwer Sql można używać przestrzeni nazw?Funkcje serwera SQL CLR

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

Jeśli tak, to w jaki sposób wywołać tę funkcję z SqlServer. Innymi słowy, w jaki sposób wywołujemy funkcje CLR z SQL Server z przestrzeniami nazw?

Odpowiedz

7

Tak, absolutnie można:

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

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

Gdzie [SomeName1.SomeName2] w pierwszej części jest zgromadzenie jak nazwie SQL Server, a reszta ([SomeName1.SomeName2.SomeClass.SomeMethod]) jest w pełni kwalifikowaną nazwę funkcji, w tym nazw.

Nawiasem mówiąc, jeśli wdrożysz program Visual Studio, to poradzi sobie z tym wiele.

+2

Właśnie to wymyśliłem. Właśnie miałem odpowiedzieć na to pytanie. [AssemblyName] [Namespace.Class]. [Metoda]. Dzięki ! – Debjit

+1

To byłaby [AssemlyName], a reszta idzie jak [SomeName1.SomeName2.SomeClass]. [SomeMethod] – Debjit

+0

Prawidłowo. Zakładam, że twoja nazwa zespołu wynika z definiowanego tutaj obszaru nazw. – Yuck