Estou criando um CLR UDF usando nome externo e nomes de classes aninhadas de segundo nível parecem não ser permitidos. É este o caso? Ao usar a sintaxe a seguir e incluir um nome de classe de primeiro nível e um método associado, posso vincular uma UDF ao método, mas não se incluir níveis de subclasse adicionais.
CREATE FUNCTION [dbo].[udf_test](@variable [nvarchar](MAX))
RETURNS [nvarchar](MAX) WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [assembly].[ns.first.second].[method]
GO
Obrigado
Tanto quanto eu posso dizer (fiz alguns testes por conta própria), isso não é suportado.
A documentação sugere isso:
Como não há menção a um nome qualificado pela classe, presumo que o SQL Server percorrerá a hierarquia apenas por namespaces, com o sobrenome sendo a própria classe. Não havia nenhuma maneira que eu pudesse encontrar para delimitar as partes de namespace e nome de classe do nome de classe totalmente qualificado.
O que eu me pergunto, porém, é por que seu código está estruturado dessa maneira? O método que você precisa especificar deve ser estático, portanto, aninhando-o em um escopo de classe extra parece que você está (ab) usando uma classe no lugar de um namespace.