Tùy chọn "RETURNS NULL ON NULL INPUT" cho UDF vô hướng (xem CREATE FUNCTION) dừng chức năng thực thi nếu tham số rỗng và trả về NULL.NULL trong vô hướng UDF trên MSSQL
Tức là, nó ngắn mạch.
Có ai biết cách xử lý nhiều thông số không?
Sẽ hữu ích khi rút ngắn cuộc gọi hàm với nhiều tham số, nếu số ít nhất là NULL ít nhất.
Khi tôi có thời gian, tôi sẽ sử dụng profiler để thử và theo dõi các cuộc gọi udf. Tôi đã tìm kiếm nhưng không thể tìm thấy bất cứ điều gì .. nhiều khả năng tôi có thể không sử dụng cụm từ tìm kiếm chính xác.
Trong thời gian chờ đợi, có ai có bất kỳ ý tưởng hoặc trải nghiệm nào không?
câu trả lời từ các thế giới RDBMS khác được hoan nghênh quá .. đây là một thiết lập ANSI và tôi thấy kết quả cho DB2 và MySQL trong tìm kiếm của tôi
Chỉnh sửa, dựa trên nhận xét: Đối với chỉ chức năng phi CLR
Chúc mừng S
Chỉnh sửa: Tôi không cần chạy hồ sơ. Doh! Điều này cho thấy các hành vi:
CREATE FUNCTION dbo.ufnTest (
@dummy tinyint
)
RETURNS tinyint
WITH RETURNS NULL ON NULL INPUT
AS
BEGIN
RETURN 1
END
GO
SELECT dbo.ufnTest(0), dbo.ufnTest(NULL)
GO
ALTER FUNCTION dbo.ufnTest (
@dummy tinyint
)
RETURNS tinyint
--WITH RETURNS NULL ON NULL INPUT
AS
BEGIN
RETURN 1
END
GO
SELECT dbo.ufnTest(0), dbo.ufnTest(NULL)
GO
ALTER FUNCTION dbo.ufnTest (
@dummy tinyint,
@dummy2 tinyint
)
RETURNS tinyint
WITH RETURNS NULL ON NULL INPUT
AS
BEGIN
RETURN 1
END
GO
SELECT dbo.ufnTest(0, 2), dbo.ufnTest(NULL, 2), dbo.ufnTest(0, NULL)
GO
ALTER FUNCTION dbo.ufnTest (
@dummy tinyint,
@dummy2 tinyint
)
RETURNS tinyint
--WITH RETURNS NULL ON NULL INPUT
AS
BEGIN
RETURN 1
END
GO
SELECT dbo.ufnTest(0, 2), dbo.ufnTest(NULL, 2), dbo.ufnTest(0, NULL)
GO
Hữu ích khi biết. Tôi có một số chuỗi UDF thao tác chuỗi có thể được hưởng lợi từ tài liệu này – Kristen
Tài liệu MSDN cần được cải thiện trong trường hợp này, để chắc chắn ! – gotqn