Dot-Net

Sql Server CLR 函式

  • July 27, 2011

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

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

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

是的,您絕對可以:

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 進行部署,它會為您處理很多這樣的事情。

引用自:https://stackoverflow.com/questions/6848689