我必须运行 n 查询SQL以更新更多数据库。我创建了一个批处理文件来帮助我完成此活动,但查询不是按名称执行的。
我使用这个批处理命令:
for %%I in (.\*.sql) DO sqlcmd -S .\istance -U username -P password -d dbname -i %%I -o .\%%I.log
如何运行按名称排序的所有查询?
感谢您的回答。
注意:我使用的是Windows 7。
答案 0 :(得分:5)
FOR命令不按名称顺序枚举文件的唯一原因是文件系统不是NTFS。 FAT文件系统按丢弃顺序枚举文件。
所以使用显式名称顺序枚举
for /F "tokens=*" %%i in ('dir /b /on *.sql') do (
sqlcmd -S .\istance -U username -P password -d dbname -i %%i -o .\%%i.log
)