É possível sobrecarregar funções do SQL Server?

8

É possível sobrecarregar uma função de servidor sql? Um escalar, como ltrim, ou uma função agregada, como count?

Mesmo se essa fosse uma idéia muito, muito ruim. É possível?

Um pouco de uma duplicata de sobrecarga de função definida pelo usuário T-SQL? Eu diria que não é 100% duplicado, já que era para a versão de 2005. Talvez isso tenha mudado?

Anthony Genovese
fonte

Respostas:

10

Não existe uma maneira direta de carta-blanche substituindo uma função interna no SQL Server.

Você pode tipo de falsificá-lo através da criação de uma função com o mesmo nome em um esquema diferente, em seguida, chamar essa função com o nome do esquema , como em:

SELECT dbo.COUNT(1)
FROM dbo.SomeTable st
GROUP BY st.SomeCol;

No entanto, é provável que isso cause mais confusão do que vale a pena.

Max Vernon
fonte
5
E se for necessário alterar o código para usar o nome do esquema de qualquer maneira, você também pode alterá-lo para se referir a uma função de usuário com nome diferente.
JulC
11
Concordo totalmente, @BradC - no geral, é apenas uma má idéia tentar sobrecarregar no SQL Server.
Max Julon