Pergunta

É possível que um UDF de várias estatatos retorne um tipo de tabela definido pelo usuário, em vez de uma tabela que é definida dentro de seu parâmetro de retorno?

Então, em vez de:

CREATE FUNCTION MyFunc 
(
    @p1 int, @p2 char
)
RETURNS 
@SomeVar TABLE 
(
    c1 int
)
AS

Eu gostaria de fazer:

CREATE FUNCTION MyFunc 
(
    @p1 int, @p2 char
)
RETURNS 
@SomeVar MyTableType
AS

A razão para isso é que, dentro da minha função, chamo outras funções e tenho que passar no MyTableType UDT, mesmo que eu definir exatamente a mesma definição de tabela no tipo de tabela de retorno, ele lançará um erro de confronto do operando.

Foi útil?

Solução

O melhor que eu poderia criar foi declarar uma variável de tabela do seu tipo local para a função e usá -la em todo o seu código. Em seguida, faça uma inserção ... selecione na tabela de parâmetros imediatamente antes da instrução Return.

Eu evitei tipos definidos pelo usuário até agora. Embora pareçam promissores, com a capacidade de alterar o tipo em um local, em vez de alterar os tipos de dados em todos os lugares, eles nunca parecem entregar quando se trata de produtividade e manutenção por causa de problemas como esses.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top