用FireBird的Isql工具可以在Dos下批量执行Sql脚本,先建立一个Sql文件,保存为input.sql
假如有大量的要执行的Sql文件,分别把它们保存为input1.sql input2.sql ...,然后建立一个bat 文件
sdcs1.bat文件,里面内容如下:
f:/fb/bin/isql.exe -user sysdba -password masterkey '127.0.0.1:e:/pim_ym' -q -input 'd:/work/ym/sdcs1/100000715.sql';
也就是说,可以用这个文件灵活写入要执行的几个sql文件,假如把sql文件保存在一个文件夹下
可以用下面的Dos命令生成该批文件的文件名并输出到sdcs1.txt 文本中,
for /f "skip=5 tokens=4" %i in ('dir') do @if exist %i echo %i>>sdcs1.txt
这样再配合下面的Dos命令就可以生成上面的bat批处理文件,后面用了echo >>log1.txt是因为记录哪些sql脚本
已经执行,并记录到文件log1.txt中,这样当出现意外时,就可以查看哪些sql脚本已经执行,本
来可以把已经执行的脚本文件从bat文件中删除,但我现在还没有什么好的方法实现。
for /f %i in (sdcs1.txt) do @echo f:/fb/bin/isql.exe -user sysdba -password masterkey '127.0.0.1:e:/pim_ym' -q -input 'd:/work/ym/sdcs1/%i';>>sdcs1.bat &echo echo %i^>^>log1.txt>>sdcs1.bat