尝试在输出到 SP 的声明变量中连接几个值时出现语法错误
Incorrect syntax error when trying to concat few values in declared variable which is output to SP
我用的是SQL2005
@empId 是 SP 的输入参数,是 INT。
根据一些逻辑,我在 IF ELSE 语句中执行以下操作,它在 OUTPUT 行中抛出错误。基本上我想连接。我尝试连接,没有运气。
请注意,@name 也是输入,即 varchar(20)
DECLARE @OUTPUT VARCHAR(50)
@OUTPUT= 'Valid' + CONVERT(VARCHAR(10), @empId) + CONVERT(VARCHAR(10) , @name)
错误
Incorrect syntax near '@Output'.
您需要 SET
或 SELECT
:
DECLARE @OUTPUT VARCHAR(50);
SET @OUTPUT = 'Valid' + CONVERT(VARCHAR(10), @empId) + CONVERT(VARCHAR(10), @name);
您可能会发现这样做更方便 replace()
:
SET OUTPUT = 'Valid @empId @name';
SET @OUTPUT = REPLACE(@OUTPUT, '@empId', @empId);
SET @OUTPUT = REPLACE(@OUTPUT, '@name', @name);
这是我构造字符串的一种方式。我认为处理模板然后一次替换每个元素更容易。
我用的是SQL2005
@empId 是 SP 的输入参数,是 INT。
根据一些逻辑,我在 IF ELSE 语句中执行以下操作,它在 OUTPUT 行中抛出错误。基本上我想连接。我尝试连接,没有运气。
请注意,@name 也是输入,即 varchar(20)
DECLARE @OUTPUT VARCHAR(50)
@OUTPUT= 'Valid' + CONVERT(VARCHAR(10), @empId) + CONVERT(VARCHAR(10) , @name)
错误
Incorrect syntax near '@Output'.
您需要 SET
或 SELECT
:
DECLARE @OUTPUT VARCHAR(50);
SET @OUTPUT = 'Valid' + CONVERT(VARCHAR(10), @empId) + CONVERT(VARCHAR(10), @name);
您可能会发现这样做更方便 replace()
:
SET OUTPUT = 'Valid @empId @name';
SET @OUTPUT = REPLACE(@OUTPUT, '@empId', @empId);
SET @OUTPUT = REPLACE(@OUTPUT, '@name', @name);
这是我构造字符串的一种方式。我认为处理模板然后一次替换每个元素更容易。