SQL脚本命令行参数

时间:2012-01-25 21:11:17

标签: sql-server command-line sqlcmd

有没有办法获取将通过SQLCMD执行的脚本文件,以接受在SQLCMD调用中传递的参数..

ie ..

SQLCMD(假设连接正常..) - V“1/25/2012”-i“ScriptFile.sql”

ScriptFile.sql的结构是什么样的?它会以与任何其他程序相同的方式开始吗?

基本上我正在尝试使用参数作为SQL命令调用文本文件脚本。到目前为止,我还没有找到任何关于这个的MSDN文章。

3 个答案:

答案 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

当设置的值包含空格时,似乎只需要引号。希望这会有所帮助。