Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 试图在输出到SP的声明变量中包含几个值时出现语法错误_Sql_Sql Server_Stored Procedures_Sql Server 2005_Casting - Fatal编程技术网

Sql 试图在输出到SP的声明变量中包含几个值时出现语法错误

Sql 试图在输出到SP的声明变量中包含几个值时出现语法错误,sql,sql-server,stored-procedures,sql-server-2005,casting,Sql,Sql Server,Stored Procedures,Sql Server 2005,Casting,我正在使用SQL 2005 @empId是SP的输入参数,为INT 根据一些逻辑,我在下面的IF-ELSE语句中执行,它在输出行中抛出错误。基本上,我想喝一杯。我试着去喝,但运气不好 请注意,@name也是varchar(20)的输入 错误 Incorrect syntax near '@Output'. 您需要设置或选择: DECLARE @OUTPUT VARCHAR(50); SET @OUTPUT = 'Valid' + CONVERT(VARCHAR(10), @empId) +

我正在使用SQL 2005

@empId是SP的输入参数,为INT

根据一些逻辑,我在下面的IF-ELSE语句中执行,它在输出行中抛出错误。基本上,我想喝一杯。我试着去喝,但运气不好

请注意,@name也是varchar(20)的输入

错误

Incorrect syntax near '@Output'.

您需要
设置
选择

DECLARE @OUTPUT VARCHAR(50);

SET @OUTPUT = 'Valid' + CONVERT(VARCHAR(10), @empId) + CONVERT(VARCHAR(10), @name);
您可能会发现执行
replace()
更方便:


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

谢谢,这对我很有帮助。这让我等着接受答案。可以..一个简单的问题,希望我们不需要“@name”的convert语句。只要@name就行了,因为它已经是varchar了?@Learner。戈登,很抱歉昨天忘了投票,记得现在就投票“我正在使用SQL 2005”让它走吧。“是时候了……”塔巴勒曼:我希望能在公司里听到我的声音,但不是我的声音
DECLARE @OUTPUT VARCHAR(50);

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