bat+sqlcmd 批量运行脚本
Hello,此BAT脚本可以帮助开发人员将某文件夹下所有SQL脚本按文件名依次在指定数据库中批量执行。不用忍受powershell invoke-sqlcmd 的笨重,在指运行时多一种选择。bat文件
@echo off
@REM ******** ******** General Batch for Starting SQL ******** ********
@REM %1 is the name of SQL script file
@rem SET SQL_NAME=%1
@SET SQL_NAME=%1
@SHIFT /1
@REM SHIFT /1
@REM P1... is parameters of SQLCMD,P1=%1...
@rem c for count
@set /a c=0
@rem ******** ******** parameters for sql server login ******** ********
@set svrName=SERVERNAME\INSTANCENAME
@set uname=your_name
@set upwd=your_password
@set db=YOURDBNAME
@set s= %1 %2 %3 %4 %5 %6 %7 %8 %9
@FOR %%A IN (%s%) DO @set /a c=c+1
@if %c% gtr 9goto s9
@if %c%==8goto s8
@if %c%==7goto s7
@if %c%==6goto s6
@if %c%==5goto s5
@if %c%==4goto s4
@if %c%==3goto s3
@if %c%==2goto s2
@if %c%==1goto s1
@if %c%==0goto s0
:s9
@sqlcmd -S%svrName% -U%uname% -P%upwd% -d%db% -i%SQL_NAME% -l60 -v P1=%1 P2=%2p3=%3 p4=%4 p5=%5 p6=%6 p=%7 p8=%8 p9=%9
@goto end
:s8
@sqlcmd -S%svrName% -U%uname% -P%upwd% -d%db% -i%SQL_NAME% -l60 -v P1=%1 P2=%2p3=%3 p4=%4 p5=%5 p6=%6 p=%7 p8=%8
@goto end
:s7
@sqlcmd -S%svrName% -U%uname% -P%upwd% -d%db% -i%SQL_NAME% -l60 -v P1=%1 P2=%2p3=%3 p4=%4 p5=%5 p6=%6 p=%7
@goto end
:s6
@sqlcmd -S%svrName% -U%uname% -P%upwd% -d%db% -i%SQL_NAME% -l60 -v P1=%1 P2=%2p3=%3 p4=%4 p5=%5 p6=%6
@goto end
:s5
@sqlcmd -S%svrName% -U%uname% -P%upwd% -d%db% -i%SQL_NAME% -l60 -v P1=%1 P2=%2p3=%3 p4=%4 p5=%5
@goto end
:s4
@sqlcmd -S%svrName% -U%uname% -P%upwd% -d%db% -i%SQL_NAME% -l60 -v P1=%1 P2=%2p3=%3 p4=%4
@goto end
:s3
@sqlcmd -S%svrName% -U%uname% -P%upwd% -d%db% -i%SQL_NAME% -l60 -v P1=%1 P2=%2p3=%3
@goto end
:s2
@sqlcmd -S%svrName% -U%uname% -P%upwd% -d%db% -i%SQL_NAME% -l60 -v P1=%1 P2=%2
@goto end
:s1
@sqlcmd -S%svrName% -U%uname% -P%upwd% -d%db% -i%SQL_NAME% -l60 -v P1=%1
@goto end
:s0
@sqlcmd -S%svrName% -U%uname% -P%upwd% -d%db% -i%SQL_NAME%
@goto end
:end
@echo off
@set svrName=
@set uname=
@set upwd=
@set db=
@exit /b 0
调用方法
test.sql
set nocount on
go
select '$(p1)' as p1 ,'$(p2)' as p2
批量调用
d:test 目录下有多个sql文件,批量运行。
运行
页:
[1]