SQL Server関数をオーバーロードすることは可能ですか?


8

SQLサーバー関数をオーバーロードすることは可能ですか?ltrimのようなスカラー、またはcountのような集約関数のどちらですか?

これが本当に、本当に、悪い考えだったとしても。出来ますか?

T-SQLのユーザー定義関数のオーバーロードの複製のいくらか?それは2005年のバージョンだったので、それは100%複製ではないと言えるでしょう。多分これは変わったのですか?

回答:


10

SQL Serverの組み込み関数を上書きする簡単な方法はありません。

次のように、別のスキーマに同じ名前の関数を作成し、スキーマ名を指定してその関数呼び出すことで、一種の偽造を行うことができます

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

ただし、これは価値があるよりも多くの混乱を引き起こす可能性が高いです。


5
とにかくスキーマ名を使用するようにコードを変更する必要がある場合は、別の名前のユーザー関数を参照するように変更することもできます。
BradC 2018

1
@BradC-完全に同意します。全体として、SQL Serverでオーバーロードを試みるのは悪い考えです。
Max Vernon
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.