[英]SQL Server 2008 R2 - sqlcmd bat file to run a batch of sql queries in folder but they are not running in order of file name
我有一堆编写的书面sql脚本,我想按顺序在一个文件夹中批量运行。 阅读后,我求助于创建一个bat文件,其中包括使用sqlcmd的过程。 对于这组特殊的脚本,当我运行bat时,它似乎并没有按顺序运行。 我不知道发生了什么,因为我尝试使用开头的数字对sql脚本进行数字重命名,尝试使用字母,甚至使用Windows资源管理器将整个脚本重命名为一个数字/字母。
该过程可能类似于以下内容:A.sql-B.sql-C.sql-D.sql-F.sql-G.sql-E.sql
关于我缺少什么或如何错误地重命名这些文件的任何想法? 谢谢
我的蝙蝠文件中有什么
for %%G in (*.sql) do sqlcmd /S W-VAN-A124178\HAZUSPLUSSRVR /d
BC_Exposure_2016 -E -i"%%G"
pause
您可以解析dir
命令的输出,可以对其进行修改,以便文件按字母顺序显示。 为此,您可以使用dir /AD /B /ON
:
/AD
排除目录
/B
排除了许多烦人的附加信息,这些信息在解析时很烦人
/ON
按名称订购
因此,修改您的代码:
for /f %%G in ('dir /A-D /B /ON') do (
sqlcmd /S W-VAN-A124178\HAZUSPLUSSRVR /d BC_Exposure_2016 -E -i"%%G"
)
pause
应该管用。 我把括号放在循环中。 一次是因为我已经习惯了,并且因为代码被分成了两行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.