<sql script =“”>无效的列名称'XXXXXXXX'</sql>

时间:2011-11-23 13:26:36

标签: sql-server-2005 sql-scripts

我有一个sql脚本说“abc.sql”,我使用sqlcmd从批处理文件中调用

  1. 调用批处理脚本,如

    script.bat arg1 arg2
    
  2. 批处理

    param1=%1
    param2=%2
    
  3. 然后调用SQL脚本,如

    sqlcmd -S server -i abc.sql -v var1=%param1% var2=%param2%
    
    1. 在SQL脚本中

      DECLARE @node as sysname;
      DECLARE @serv as sysname;
      
      SET @node = $(var1);
      SET @serv = $(var2);
      
    2. 但是当我调用批处理脚本“无效的列名称'XXXXXXXX'”时,这给了erro

      其中'XXXXXXX'是var1的值。我做错了什么。任何想法。

      同样,即使声明并设置了标量变量@node和@serv,我也会收到错误Must declare the scalar variable "@node"

1 个答案:

答案 0 :(得分:4)

您需要在脚本中包含引号:

    SET @node = '$(var1)';
    SET @serv = '$(var2)';