2

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

  1. 调用批处理脚本

    script.bat arg1 arg2
    
  2. 批量

    param1=%1
    param2=%2
    

然后像这样调用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);
    

但是当我调用批处理脚本“无效的列名'XXXXXXXX'”时,这给出了错误

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

同样,即使标量变量 @node 和 @serv 已声明并设置...我收到一条错误消息Must declare the scalar variable "@node"

4

1 回答 1

4

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

    SET @node = '$(var1)';
    SET @serv = '$(var2)';
于 2011-11-23T13:32:17.133 回答