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