【发布时间】:2009-05-07 09:26:36
【问题描述】:
当运行 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 语句,因此我可以使用 SQLCMD 模式在 SQL Management Studio 中编辑/测试脚本,但在我的测试和生产环境中从命令行运行脚本。
【问题讨论】:
标签: sql-server sql-server-2005 sqlcmd