SQL 脚本命令行参数

发布于 2024-12-29 03:55:12 字数 247 浏览 0 评论 0原文

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

即..

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

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

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

Is there a way to get a script file that will be executing via SQLCMD to accept the parms passed in the SQLCMD call..

ie..

SQLCMD (assume the connection is OK..) -V "1/25/2012" -i "ScriptFile.sql"

What would the structure of ScriptFile.sql Look like? Would it start with the same as any other procedure..?

Basically I'm trying to call a text file script with parameters as an SQL command. So far I haven't been able to find any MSDN articles on this one.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

一直在等你来 2025-01-05 03:55:12

好的..如果有人关心的话,它是这样的...

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

Update TableName Set ColumnValue=$(Param) 

--注意没有声明,并且参数的格式使用
$(Param) 而不是 @Param 作为变量...

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

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

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

OK.. If anyone cares, it Goes Like This...

The SQL Script file which is using the variable uses the variable like so:

Update TableName Set ColumnValue=$(Param) 

--Notice there's no declare, and the format of the parameter uses
$(Param) instead of @Param as a variable...

The Command line looks almost the same. For some reason, the passed value needs to be in single quotes within double quotes, like so:

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

Use just double quotes around the ScriptFile name, Single within Double for the Parameters.

墟烟 2025-01-05 03:55:12

使用:

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

文件.sql:

SELECT @test

USE:

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

file.sql:

SELECT @test
携君以终年 2025-01-05 03:55:12

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

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

以及在 dos cmd 或 powershell 中:
sqlcmd -S "My Server" -v Param=100 -i prune.sql

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

According to http://msdn.microsoft.com/en-us/library/ms188714.aspx you can use -v to set a scripting variable. This worked for me, and the other solutions here didnt;

prune.sql:
delete from Table where Column=$(Param)

and in dos cmd or in powershell:
sqlcmd -S "My Server" -v Param=100 -i prune.sql

Quotation marks seem only to be needed when the value being set has spaces. Hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文