2011-07-27 34 views
7

Bir CLR işlevi yazarken Sql Server ad alanlarını kullanabilir miyiz?Sql Server CLR İşlevleri

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

Eğer öyleyse, bu işlevi SqlServer'dan nasıl ararız. Başka bir deyişle, SQL Server'dan CLR işlevlerini ad alanlarıyla nasıl ararız? Evet, kesinlikle can

cevap

7

:

İlk bölümde [SomeName1.SomeName2] SQL Server adlandırılmış olarak montaj ve dinlenme ( [SomeName1.SomeName2.SomeClass.SomeMethod]) 'dir
CREATE FUNCTION SomeMethod(@input VarChar(200)) 
RETURNS VarChar(200) WITH EXECUTE AS CALLER AS 

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

ad dahil tam işlev adı vardır.

Bu arada, Visual Studio'dan dağıtırsanız, bunu sizin için çok şey halleder.

+2

Sadece bunu anladım. Buna cevap vermek üzereydim. [AssemblyName] [Namespace.Class]. [Yöntem]. Teşekkürler ! – Debjit

+1

Bu aslında [AssemlyName] olur ve diğerleri [SomeName1.SomeName2.SomeClass] olarak gider. [SomeMethod] – Debjit

+0

Doğru. Derlemenizin adının, burada tanımlanmış ad alanından geldiğini varsayıyorum. – Yuck