在运行SQLCMD.exe并为脚本变量提供命令行参数时,我希望命令行上提供的值将覆盖在SQL脚本文件中定义的值。
例如:
给定以下SQL脚本:
:setvar XXX "SQL script"
print '$(XXX)'和命令行:
sqlcmd.exe -S <Server> -d <Database> -E -b -i <Script> -v XXX="Batch script"我希望输出是:
批处理脚本
但是,输出结果是:
SQL脚本
这就是我们的目的,还是必须删除SQL脚本中的:setvar语句?
我在脚本中提供了:setvar语句,因此我可以在SQL Management Studio中使用SQLCMD模式编辑/测试脚本,但是在我的测试和生产环境中从命令行运行脚本。
发布于 2009-08-29 00:49:03
我认为这是故意的。目前,.sql脚本中的setvar语句具有最高优先级。
https://stackoverflow.com/questions/833678
复制相似问题