SQL Server 2008 R2 -SQLCMD BAT文件以在文件夹中运行一批SQL查询,但它们没有按文件名的顺序



我有一堆我编写的书面SQL脚本,我想在文件夹中按顺序作为批量运行。阅读后,我求助于创建一个包括使用SQLCMD的BAT文件。对于这组脚本集,当我运行蝙蝠时,它似乎并没有按顺序运行。我不知道发生了什么事,因为我尝试在开始时使用前缀编号重命名SQL脚本,尝试使用字母,甚至将整个脚本重命名为使用Windows Explorer的编号/字母。

该过程可能看起来像这样的A.SQL -B.SQL -C.SQL -D.SQL -F.SQL -G.SQL -E.SQL

关于我缺少什么或如何错误地重命名这些文件的任何想法?谢谢

我在蝙蝠文件中拥有的东西

for %%G in (*.sql) do sqlcmd /S W-VAN-A124178HAZUSPLUSSRVR /d 
BC_Exposure_2016 -E -i"%%G"
pause

您可以解析dir命令的输出,您可以修改该命令,以便以字母顺序显示文件。为此,您可以使用dir /A-D /B /ON
/A-D排除目录
/B不包括许多混乱的其他信息,这些信息在解析时很烦人
/ON按名称

因此,要修改您的代码:

for /f %%G in ('dir /A-D /B /ON') do (
  sqlcmd /S W-VAN-A124178HAZUSPLUSSRVR /d BC_Exposure_2016 -E -i"%%G"
)
pause

应该工作。我将括号围在循环周围。一次因为我已经习惯了,因为代码被分为两行。

最新更新