尝试在输出到SP的已声明变量中连接少量值时出现错误的语法错误

时间:2019-03-13 23:58:54

标签: sql sql-server stored-procedures sql-server-2005 casting

我正在使用SQL 2005

@empId是SP的输入参数,即INT。

基于某种逻辑,我在下面的IF ELSE语句中进行操作,它在OUTPUT行中引发错误。基本上我想Concat。我试着去交往,没有运气。

请注意,也输入了@name,即varchar(20)

DECLARE @OUTPUT VARCHAR(50)

@OUTPUT= 'Valid' + CONVERT(VARCHAR(10), @empId) + CONVERT(VARCHAR(10) , @name)

错误

Incorrect syntax near '@Output'.

1 个答案:

答案 0 :(得分:2)

您需要SETSELECT

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);

这是构造字符串的一种方式。我认为处理模板然后再一次替换每个元素会更容易。