Sql server SQL Server 2008 R2-sqlcmd bat文件以在文件夹中运行一批SQL查询,但它们不是按文件名的顺序运行的
我已经编写了一堆sql脚本,我希望在文件夹中以批处理的方式运行。在阅读之后,我求助于创建一个bat文件,其中包括使用sqlcmd。对于这组特定的脚本,当我运行bat时,它似乎没有按顺序运行。我不知道发生了什么,因为我尝试在开始时用前缀数字重命名sql脚本,尝试使用字母,甚至使用windows资源管理器将整个脚本重命名为一个数字/字母 这个过程可能看起来像这样:A.sql-B.sql-C.sql-D.sql-F.sql-G.sql-E.sql 关于我丢失了什么或者如何错误地重命名这些文件,有什么想法吗?谢谢 我的bat文件里有什么Sql server SQL Server 2008 R2-sqlcmd bat文件以在文件夹中运行一批SQL查询,但它们不是按文件名的顺序运行的,sql-server,sql-server-2008,batch-file,sqlcmd,Sql Server,Sql Server 2008,Batch File,Sqlcmd,我已经编写了一堆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/A-D/B/ON
:/A-D
排除目录/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
应该有用。我在循环中加了括号。这一次是因为我已经习惯了,因为代码被分成了两行 我认为您可能需要运行此处指出的多个bat文件()或通过sql Agent运行。如果您想订购这些文件,powershell可能是更好(更现代)的替代方案