有没有办法让将通过SQLCMD来执行,接受在SQLCMD调用中传递的PARMS脚本文件..SQL脚本命令行参数
即..
SQLCMD(假设连接是OK ..)-V“1/25/2012”-i“ScriptFile.sql”
ScriptFile.sql的结构会是什么样子?它会和其他程序一样开始吗??
基本上我试图调用带有参数的文本文件脚本作为SQL命令。到目前为止,我一直无法找到任何MSDN文章。
有没有办法让将通过SQLCMD来执行,接受在SQLCMD调用中传递的PARMS脚本文件..SQL脚本命令行参数
即..
SQLCMD(假设连接是OK ..)-V“1/25/2012”-i“ScriptFile.sql”
ScriptFile.sql的结构会是什么样子?它会和其他程序一样开始吗??
基本上我试图调用带有参数的文本文件脚本作为SQL命令。到目前为止,我一直无法找到任何MSDN文章。
OK,如果还有人关心,它是这样的......
SQL脚本文件,该文件是使用变量使用像这样的变量:
更新表名Set ColumnValue = $(参数)
--notice没有申报,参数的格式使用
$(帕拉姆)而不是@Param作为变量...
命令行看起来几乎是相同的。出于某种原因,传递的值需要在双引号内单引号,像这样:
SQLCMD -S服务器-d数据库名-v帕拉姆=“‘帕拉姆’” -i“ScriptFile.sql”
只在ScriptFile名称周围使用双引号,对于参数在双精度内使用双引号。
用途:
sqlcmd -E -S <Your Server> -v test="Test String" -i file.sql
file.sql:
SELECT @test
它的工作原理!谢谢!! –
Retraction ..它似乎工作..直到我追赶它一路通过..它没有通过parm ..我可以包括一切的样本..看着分析器,我可以看到SQL正在执行,但帕尔姆已经没有值..它用空值更新数据库.. –
根据http://msdn.microsoft.com/en-us/library/ms188714.aspx,您可以使用-v来设置脚本变量。这对我有用,而这里的其他解决方案并没有;
prune.sql: 从表删除其中柱= $(帕拉姆)
和在DOS CMD或在的powershell: SQLCMD -S “我的服务器” -v帕拉姆= 100 -i剪枝.sql
当设置的值有空格时,引号似乎只是需要的。希望这可以帮助。
它会在您的脚本中设置ColumnValue ='$(Param)',然后在没有单引号的情况下传递值吗? – CoderDennis