原文出处:http://my.oschina.net/Kenyon/blog/53399

       近期系统升级,系统用的数据库是MSSQL 2008,里面有10几个数据库,因为更新的时候有10几个脚本,每个脚本都需要在每个库上执行一遍。手工执行的工作量还是比较大的,而且容易出错。故写了以下一个bat处理文件,权且记录一下。本程序共有4个文件组成,一个点击文件,一个Exec文件,一个说明文件和一个日志文件。

点击文件 Click_Me.bat 内容
@echo off  

set SERVER=localhost

set LOGIN=sa  

set PWD=00000000

set DB_LIST=chenlq,kenyon

call :Fd %1 

goto :EOF  


::循环获取DB列表 

:Fd  

echo. >batch.log  

for %%a in (%DB_LIST%) do  (call sql_exec.bat %SERVER%  %LOGIN%  %PWD%  %%a) 

:: for %%a in (%DB_LIST%) do  (echo %SERVER%  %LOGIN%  %PWD%  %%a & pause) 

goto :EOF

 

 
中间会用到的Exec文件 sql_exec.bat 内容

@echo off  

call :Fd %1  

goto :EOF  

:Fd 

for /F "tokens=*" %%i in ('dir /b *.sql 2^>nul') do ( 

echo 本次批量执行的DB:%%a 文件列表:%%i >>batch.log 

echo %date:~,10% %time% Begin Exec %%i >>batch.log 

sqlcmd   -S %SERVER%   -U %LOGIN%   -P  %PWD%   -d  %%a  -i  %%i >>batch.log 

echo %date:~,10% %time% End Exec %%i >>batch.log 

echo.>>batch.log 

goto :EOF

说明文件内容:

1.把需要执行的文件按一定的名字次序放在批处理工具相同的路径下

2.修改Click_Me.bat的参数,如ip,user,密码等

3.执行Click_Me.bat

4.查看相同路径下产生的batch.log里面的相关信息

 

 


本文转载:CSDN博客