Có thể quá tải các chức năng máy chủ SQL không?


8

Có thể quá tải một chức năng máy chủ sql? Hoặc là một vô hướng, như ltrim, hoặc một hàm tổng hợp, như đếm?

Ngay cả khi đây là một ý tưởng thực sự, thực sự, xấu. Có thể không?

Một phần nào đó của một bản sao quá tải chức năng do người dùng T-SQL xác định? Tôi có thể nói nó không phải là bản sao 100%, vì đó là phiên bản năm 2005. Có lẽ điều này đã thay đổi?

Câu trả lời:


10

Không có cách nào đơn giản để carte-blanche ghi đè chức năng tích hợp trong SQL Server.

Bạn có thể loại giả nó bằng cách tạo một hàm có cùng tên trong một lược đồ khác, sau đó gọi hàm đó bằng tên lược đồ , như trong:

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

Tuy nhiên, điều này khá có khả năng gây ra nhiều nhầm lẫn hơn là giá trị.


5
Và nếu bạn sẽ phải thay đổi mã để sử dụng tên lược đồ, thì bạn cũng có thể thay đổi nó để tham chiếu đến một hàm người dùng được đặt tên khác.
BradC

1
Hoàn toàn đồng ý, @BradC - nói chung, đó chỉ là một ý tưởng tồi để thử quá tải trong SQL Server.
Max Vernon
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.