日期:2014-05-17  浏览次数:20485 次

请教如何用sqlwb装载多个sql文件?
当前目录下有
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 off
REM.-- Prepare the Command Processor --
SETLOCAL ENABLEEXTENSIONS
SETLOCAL ENABLEDELAYEDEXPANSION

::: -- Version History ?
:::          XX.XXX         YYYYMMDD Author Description
SET "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 %%a
goto :eof
:upgrade
REM. 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 --