Первый параметр моей хранимой процедуры, usp_LogMessage_Begin, принимает поле varchar в качестве имени вызывающей подпрограммы.Я хотел бы использовать функцию Object_NAME для возврата этого имени следующим образом:
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 не поддерживает этот тип оценки функций на месте?