1
我的存儲過程usp_LogMessage_Begin的第一個參數接受varchar字段作爲調用例程的名稱。我想用OBJECT_NAME函數返回這個名字像這樣:將函數的varchar結果作爲varchar參數傳遞給出錯誤
EXEC @LogMessageId = usp_LogMessage_Begin OBJECT_NAME(@@PROCID), 'Begin deleting all records in CBH_REBATBL...'
但我得到這個錯誤:
Msg 102, Level 15, State 1, Procedure usp_BFAncl01_Reset, Line 22
Incorrect syntax near 'OBJECT_NAME'.
這將工作:
declare @SPName varchar(512) = OBJECT_NAME(@@PROCID)
EXEC @LogMessageId = usp_LogMessage_Begin @SPName, 'Begin deleting all records in CBH_REBATBL...'
但我寧願不創建一個臨時變量。 T-SQL不支持這種類型的就地功能評估嗎?
謝謝。 (我投它。)也許在SQL 2016年... – ChadD