SQL - 尝试将变量添加到字符串中

时间:2015-06-06 04:23:47

标签: sql sql-server-2008

我有一个存储过程,我将路径传递给文件,如:

EXEC spMyPathFile         
@PFile = 'C:\TFiles\Paths\Test_1.1_Version.txt'

我想做的事情是循环播放,能够使用以下方式传递1.1和1.2等文件的多个版本:

DECLARE @intLp INT  
DECLARE @a varchar(2)  
SET @intLp = 1 WHILE (@intLp <2) 
BEGIN  IF @intLp = 1  BEGIN
        SET @a = '1.1'
        END
      ELSE IF @intLp = 2
      BEGIN
        SET @a = '1.2'
    END

EXEC spMyPathFile         
@PFile = 'C:\TFiles\Paths\Test_'+@a+'_Version.txt'       
SET @intLp = @intLp + 1 
END

出于某种原因,我得到&#34;&#39;&#39;&#39;附近的语法不正确。&#34;就在@a之前。我显然没有正确加入我的变量。

有人能举例说明这应该是什么样的吗?

1 个答案:

答案 0 :(得分:2)

更改

EXEC spMyPathFile         
@PFile = 'C:\TFiles\Paths\Test_'+@a+'_Version.txt'       

declare @FileName varchar(100) = 'C:\TFiles\Paths\Test_' + @a + '_Version.txt' 
EXEC spMyPathFile         
@PFile = @FileName

编辑:

来自MSDN - Specify Parameters

  

过程调用提供的参数值必须是常量或变量;函数名称不能用作参数值。变量可以是用户定义的,也可以是系统变量,例如@@ spid。