Sql server批量处理脚本

       近期系统升级,系统用的数据库是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里面的相关信息

 

 

 

 


 

 

 

你可能感兴趣的:(sql,server,batch,2008)