在编写CLR函数时,我们可以使用命名空间吗?
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部署,它会为您处理很多这样的事情.