我正在使用外部名称创建 CLR UDF,而二级嵌套类名似乎是不允许的。是这样吗?当使用以下语法并包含第一级类名和关联方法时,我可以将 UDF 绑定到该方法,但如果包含其他子类级别则不能。
CREATE FUNCTION [dbo].[udf_test](@variable [nvarchar](MAX))
RETURNS [nvarchar](MAX) WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [assembly].[ns.first.second].[method]
GO
谢谢
据我所知(我自己做了一些测试),这不受支持。
文档提示了这一点:
由于没有提到类限定名称,我假设 SQL Server 将仅通过命名空间遍历层次结构,姓氏是类本身。我也找不到任何方法来分隔完全限定类名的名称空间和类名部分。
不过,我想知道的是,为什么您的代码是这样构造的?您需要指定的方法必须是静态的,因此将它嵌套在一个额外的类范围内看起来就像您正在(ab)使用一个类来代替命名空间。