数据库SQL自动执行脚本

来源:互联网 发布:数据恢复后照片打不开 编辑:程序博客网 时间:2024/05/21 09:04
 

@echo off

color 21

@title 批量执行数据库对象脚本
SET user=sa
SET password=123456Mcj**
SET serverip=10.27.1.208
SET db=gpp_test

:choice
cls
echo 当前使用的数据库连接:
echo 服务器IP:%serverip% 数据库:%db% 用户名:%user% 密码: %password%
echo.

set choice=
set /p choice=是否将脚本执行到以上数据库 [Y,N]?
if /i "%choice%"=="Y" goto run
if /i "%choice%"=="N" goto getinput
goto end

:getinput
echo.
set /p serverip=%1服务器IP:
set /p db=%1数据库名称:
set /p user=%1用户名:
set /p password=%1密码:

goto choice

:run
set fenc=chinese
if exist log.txt del /a /f /q log.txt
for /f %%a in ('dir *.sql /A:-D /S /B') do (set /a fCount += 1)
setlocal enabledelayedexpansion
for /f %%a in ('dir *.sql /A:-D /S /B') do (
cls
set /a fIndex+= 1
echo 当前使用的数据库连接:
echo 服务器IP:%serverip% 数据库:%db%
echo.
echo 总共%fCount%个文件,正在处理第!fIndex!个
echo ************************************************************
echo 执行%%a

echo 总共%fCount%个文件,正在处理第!fIndex!个 >> log.txt
echo 执行%%a >> log.txt
echo ------------------------------------------------------------  >> log.txt
call sqlcmd -S %serverip% -d %db% -U %user% -P %password% -i %%a >> log.txt
echo ************************************************************ >> log.txt
echo. >> log.txt
echo. >> log.txt
)
echo 
goto end

:end
echo.
echo.
echo 执行完成,按任意键退出...
pause>nul

原创粉丝点击