我的SELECT查詢使用搜索的CASE表達式。在這種情況下,我稱之爲用戶功能。我想從SELECT中傳遞給用戶函數一個值。無法將列傳遞到SQL用戶函數
我們有多個SQL Server。在一臺服務器上,該SQL失敗,但在其他服務器上運行良好。
該理論是服務器之間的兼容性問題。工作服務器有COMPATIBILITY_LEVEL
爲90.發生故障的服務器爲80.
這是兼容性錯誤嗎?
錯誤消息:
線16:消息102,級別15,狀態1:
鄰近 'UT' 的語法不正確。
SQL代碼(僞造表爲SO):
CREATE FUNCTION uf_TestFunction_table
(@Number Int)
RETURNS TABLE
RETURN (SELECT UserId FROM [dbo].[User] WHERE [UserID] = @Number)
GO
SELECT TOP 1
UT.UserID,
UT.Deleted,
CASE WHEN EXISTS(SELECT * FROM [dbo].[uf_TestFunction_table]([UT].[UserID])) THEN 1 ELSE 0 END AS FOO
FROM [dbo].[User] UT