Передача результата функции varchar функции в качестве параметра varchar приводит к ошибке - PullRequest
1 голос
/ 15 ноября 2011

Первый параметр моей хранимой процедуры, 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 не поддерживает этот тип оценки функций на месте?

1 Ответ

1 голос
/ 15 ноября 2011

Нет, это не поддерживает.

Здесь есть запрос на соединение с элементом upvote для этого: T-SQL: использовать скалярные функции в качестве параметров хранимой процедуры

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...