我有一个sql脚本说“abc.sql”,我使用sqlcmd从批处理文件中调用
调用批处理脚本,如
script.bat arg1 arg2
批处理
param1=%1
param2=%2
然后调用SQL脚本,如
sqlcmd -S server -i abc.sql -v var1=%param1% var2=%param2%
在SQL脚本中
DECLARE @node as sysname;
DECLARE @serv as sysname;
SET @node = $(var1);
SET @serv = $(var2);
但是当我调用批处理脚本“无效的列名称'XXXXXXXX'”时,这给了erro
其中'XXXXXXX'是var1的值。我做错了什么。任何想法。
同样,即使声明并设置了标量变量@node和@serv,我也会收到错误Must declare the scalar variable "@node"
答案 0 :(得分:4)
您需要在脚本中包含引号:
SET @node = '$(var1)';
SET @serv = '$(var2)';