当前目录下有
aa.sql
ab.sql
ac.sql
三个sql文件 ,有下面的命令行可以打开这三个文件 ,现在的问题是如果几十个sql文件,要打开的话得要把每个文件名写到命令行里面,请教大家有好办法 ?
sqlwb -S xx.xx.xx.xx -d datadb -U sa -P password -nosplash "aa.sql","ab.sql","ac.sql"
像是sql2000的命令行 isqlw -S xx.xx.xx.xx -d datadb -U sa -P password -f "a*.sql"
不清楚为什么sqlwb没有-f的参数 ?
------解决方案--------------------
这个要自己写的.原因是一般SQL文件都会有要求执行顺序的.
可以写一个lst文件依次列出你要执行的sql文件,然后用bat批处理的方式通过读取此一文件依次执行每一行.
献上一个我两年前的例子DOS:
- VB code
@echo offREM.-- Prepare the Command Processor --SETLOCAL ENABLEEXTENSIONSSETLOCAL ENABLEDELAYEDEXPANSION::: -- Version History ?::: XX.XXX YYYYMMDD Author DescriptionSET "version=01.00.00" &:20090521 s.s. initial version::: -- Set the window title --SET "title=%~nx0 - version %version%"TITLE %title%SET "mysqlroot=D:\projects\xyz\sql"for /f %%a in (%mysqlroot%\Update.cfg) do call :upgrade %%agoto :eof:upgradeREM. no check for commented lines. use file not found instead. sqlcmd -S mysqlserver -U mysaadmin -P mypasswd -d mymaster -i %mysqlroot%\%1 -o %mysqlroot%\log_%1.log:eof::: -- End of application --::: ECHO.&PAUSE&GOTO:EOF::: -- End of application --