2011-07-27 84 views
7

在編寫CLR函數時我們可以使用Sql Server命名空間嗎?Sql Server CLR函數

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

如果是這樣,那麼我們該如何從SqlServer調用這個函數。換句話說,我們如何使用命名空間從SQL Server調用CLR函數?

回答

7

是的,你絕對可以:

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

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

[SomeName1.SomeName2]在第一部分是在SQL Server命名大會,其餘([SomeName1.SomeName2.SomeClass.SomeMethod])是完全合格的函數名稱,包括命名空間。

順便說一下,如果您從Visual Studio部署,它可以爲您處理大量此類問題。

+2

我只是想通了。我正要回答這個問題。 [的AssemblyName] [Namespace.Class]。[方法]。謝謝 ! – Debjit

+1

它實際上是[AssemlyName],然後剩下的就是[SomeName1.SomeName2.SomeClass]。[SomeMethod] – Debjit

+0

正確。我假設你的程序集名稱是在這裏定義的命名空間的名稱。 – Yuck