SQL Script Command Line Arguments

对着背影说爱祢 提交于 2019-12-08 04:18:30

问题


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.


回答1:


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.




回答2:


USE:

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

file.sql:

SELECT @test



回答3:


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.



来源:https://stackoverflow.com/questions/9010359/sql-script-command-line-arguments

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!