繁体   English   中英

SQL Server 2008 R2-sqlcmd bat文件可在文件夹中运行一批sql查询,但它们未按文件名的顺序运行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM