Возможно ли перегрузить функции SQL Server?


8

Можно ли перегрузить функцию сервера sql? Или скаляр, как ltrim, или агрегатная функция, как count?

Даже если это была действительно очень плохая идея. Является ли это возможным?

Что-то вроде дубликата перегруженной пользовательской функции T-SQL? Я бы сказал, что это не 100% дубликат, так как это было в версии 2005 года. Может быть, это изменилось?

Ответы:


10

Не существует прямого способа карт-бланша, перекрывающего встроенную функцию в SQL Server.

Вы можете вид подделки это путь создания функции с тем же именем в другой схеме, то вызов этой функции с именем схемы , как:

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

Тем не менее, это вполне может вызвать больше путаницы, чем оно того стоит.


5
И если вам все равно придется изменить код для использования имени схемы, вы можете также изменить его, чтобы ссылаться на пользовательскую функцию с другим именем.
BradC

1
Полностью согласен, @BradC - в общем, попытка перегрузки в SQL Server - плохая идея.
Макс Вернон,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.