有没有办法获取将通过SQLCMD执行的脚本文件,以接受在SQLCMD调用中传递的参数..
ie ..
SQLCMD(假设连接正常..) - V“1/25/2012”-i“ScriptFile.sql”
ScriptFile.sql的结构是什么样的?它会以与任何其他程序相同的方式开始吗?
基本上我正在尝试使用参数作为SQL命令调用文本文件脚本。到目前为止,我还没有找到任何关于这个的MSDN文章。
答案 0 :(得分:6)
好的..如果有人关心,它会像这样......
使用变量的SQL Script文件使用如下变量:
更新TableName设置ColumnValue = $(Param)
- 注意没有声明,参数的格式使用
$(Param)而不是@Param作为变量......
命令行看起来几乎相同。由于某种原因,传递的值必须在双引号内的单引号中,如下所示:
SQLCMD -S ServerName -d DatabaseName -v Param =“'Param'” - i“ScriptFile.sql”
在ScriptFile名称周围使用双引号,在参数中使用Double in Double。
答案 1 :(得分:1)
使用:
sqlcmd -E -S <Your Server> -v test="Test String" -i file.sql
file.sql:
SELECT @test
答案 2 :(得分:1)
根据http://msdn.microsoft.com/en-us/library/ms188714.aspx,您可以使用-v设置脚本变量。这对我有用,其他解决方案没有;
prune.sql: 从Table中删除Column = $(Param)
并在dos cmd或powershell中: sqlcmd -S“我的服务器”-v Param = 100 -i prune.sql
当设置的值包含空格时,似乎只需要引号。希望这会有所帮助。