加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – SQLCMD,命令行变量和脚本:setvar

发布时间:2020-12-12 06:56:30 所属栏目:MsSql教程 来源:网络整理
导读:运行SQLCMD.exe并为脚本变量提供命令行参数时,我希望在命令行中提供的值将覆盖SQL脚本文件中定义的值。 例如 给出以下SQL脚本: :setvar XXX "SQL script"print '$(XXX)' 和命令行: sqlcmd.exe -S Server -d Database -E -b -i Script -v XXX="Batch script
运行SQLCMD.exe并为脚本变量提供命令行参数时,我希望在命令行中提供的值将覆盖SQL脚本文件中定义的值。

例如

给出以下SQL脚本:

:setvar XXX "SQL script"
print '$(XXX)'

和命令行:

sqlcmd.exe -S <Server> -d <Database> -E -b -i <Script> -v XXX="Batch script"

我期望输出是:

Batch script

但是输出是:

SQL script

这是意图,还是必须:删除SQL脚本中的setvar语句?

我在脚本中提供了setvar语句,所以我可以使用SQLCMD模式来编辑/测试SQL Management Studio中的脚本,但是在测试和生产环境中的命令行中运行脚本。

解决方法

这似乎是设计的;有人已经在Connect上提出了更改请求:
http://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=382007

我可以看到的唯一的问题是在发布时注释掉(或以其他方式删除)setvar命令。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读