Est-il possible de surcharger les fonctions SQL Server?

8

Est-il possible de surcharger une fonction serveur SQL? Soit un scalaire, comme ltrim, ou une fonction d'agrégation, comme count?

Même si c'était vraiment une très mauvaise idée. C'est possible?

Une sorte de surcharge de la fonction définie par l'utilisateur T-SQL? Je dirais que ce n'est pas un doublon à 100%, car c'était pour la version 2005. Peut-être que cela a changé?

Anthony Genovese
la source

Réponses:

10

Il n'existe aucun moyen simple de carte-blanche de remplacer une fonction intégrée dans SQL Server.

Vous pouvez en quelque sorte faire semblant en créant une fonction avec le même nom dans un schéma différent, puis en appelant cette fonction avec le nom du schéma , comme dans:

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

Cependant, cela risque fort de créer plus de confusion qu'il n'en vaut la peine.

Max Vernon
la source
5
Et si vous devez de toute façon changer le code pour utiliser le nom du schéma, vous pouvez aussi le changer pour faire référence à une fonction utilisateur nommée différemment.
BradC
1
Entièrement d'accord, @BradC - dans l'ensemble, c'est juste une mauvaise idée d'essayer de surcharger dans SQL Server.
Max Vernon