Apakah mungkin untuk membebani fungsi SQL Server?

8

Apakah mungkin untuk membebani fungsi server sql? Baik skalar, seperti ltrim, atau fungsi agregat, seperti hitungan?

Bahkan jika ini adalah ide yang sangat, sangat, buruk. Apa itu mungkin?

Agak dari duplikat overloading fungsi yang didefinisikan Pengguna T-SQL? Saya akan mengatakan itu bukan 100% duplikat, karena itu untuk versi 2005. Mungkin ini sudah berubah?

Anthony Genovese
sumber

Jawaban:

10

Tidak ada cara lurus ke depan carte-blanche mengesampingkan fungsi bawaan di SQL Server.

Anda bisa jenis palsu itu dengan menciptakan fungsi dengan nama yang sama dalam skema yang berbeda, kemudian memanggil fungsi dengan nama skema , seperti di:

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

Namun, ini sangat mungkin menyebabkan lebih banyak kebingungan daripada nilainya.

Max Vernon
sumber
5
Dan jika Anda harus mengubah kode untuk menggunakan nama skema, Anda sebaiknya mengubahnya untuk merujuk ke fungsi pengguna yang diberi nama berbeda.
BradC
1
Sepenuhnya setuju, @BradC - secara keseluruhan itu hanya ide buruk untuk mencoba kelebihan di SQL Server.
Max Vernon