【问题标题】:Incorrect syntax error when trying to concat few values in declared variable which is output to SP尝试在输出到 SP 的已声明变量中连接几个值时出现语法错误
【发布时间】:2025-11-24 08:00:01
【问题描述】:

我使用的是 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 2005" 放手。是时候了……
  • @TabAlleman:我希望但不想在公司听到我的声音

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


【解决方案1】:

您需要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);

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

【讨论】:

  • 谢谢,它帮助了我。它让我等待接受答案。会做......一个快速的问题,希望我们不需要'@name'的转换语句。只是 @name 就可以了,因为它已经是一个 varchar 了?
  • @Learner 。 . .您不需要转换名称。
  • 戈登,对不起昨天忘记投票了,现在记得投票
最近更新 更多