Sql server 2008 将函数的varchar结果作为varchar参数传递是一个错误
存储过程的第一个参数usp_LogMessage_Begin接受varchar字段作为调用例程的名称。我想使用Object_NAME函数返回此名称,如下所示:Sql server 2008 将函数的varchar结果作为varchar参数传递是一个错误,sql-server-2008,tsql,Sql Server 2008,Tsql,存储过程的第一个参数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_
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不支持这种类型的就地函数求值吗?不,它不支持这种类型
此处有一个向上投票的连接项请求:否它不支持此操作 此处有一个要对此进行upvote的连接项请求: