SQL 脚本命令行参数

问题描述 投票:0回答:3

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

即..

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

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

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

sql-server command-line sqlcmd
3个回答
9
投票

好吧..如果有人关心的话,就这样...

使用该变量的 SQL 脚本文件使用该变量,如下所示:

Update TableName Set ColumnValue=$(Param) 

--注意没有声明,参数的格式使用

$(Param)
而不是
@Param
作为变量...

命令行看起来几乎一样。由于某种原因,传递的值需要用双引号内的单引号括起来,如下所示:

SQLCMD -S ServerName -d DatabaseName -v Param="'Param'" -i"ScriptFile.sql" 

仅在 ScriptFile 名称周围使用双引号,参数使用双引号内的单引号。


1
投票

用途:

sqlcmd -E -S <Your Server> -v test="Test String" -i file.sql

文件.sql:

SELECT @test

1
投票

根据 http://msdn.microsoft.com/en-us/library/ms188714.aspx,您可以使用 -v 来设置脚本变量。这对我有用,而这里的其他解决方案却没有;

修剪.sql: 从表中删除 Column=$(Param)

在 dos cmd 或 powershell 中: sqlcmd -S“我的服务器”-v Param=100 -i prune.sql

似乎只有当设置的值有空格时才需要引号。希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.