尝试在声明的变量中连接少量值并输出到SP时,语法错误不正确

问题描述 投票:1回答:1

我正在使用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'.
sql sql-server stored-procedures sql-server-2005 casting
1个回答
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);

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

© www.soinside.com 2019 - 2024. All rights reserved.