关于 sql server sqlcmd 异常捕捉 %errorlevel%

  • 基本语法
  • 关键看-b on error batch abort 和 -m errorlevel

runsql.bat

@echo off
:start
cd %cd%
@echo current directory is %cd%
@echo start testing
@echo good example
rem good sql 
sqlcmd -E -dmaster -Q%1 -W -b -m-1 -h-1 -s^|
rem if the query or batch file abort
@if %errorlevel%==1  goto b1 
@if %errorlevel%==0  goto g1 
:g1
rem if finished
echo run example1 successful, errorlevel=%errorlevel%
goto exit1
:b1
rem error message
@echo run example1 failed, errorlevel=%errorlevel%
goto exit1
rem exit1
:exit1
echo exit


  • 测试
  • straxsql.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 ******** ********  
    rem @set svrName=ryemsqapaxdb1.na.avonet.net
    rem @set uname=batchap
    rem @set upwd=1qaz2WSX
    rem @set db=apoms
    
    @set s= %1 %2 %3 %4 %5 %6 %7 %8 %9
    @FOR %%A IN (%s%) DO @set /a c=c+1
    @if %c%==9  goto s9
    @if %c%==8  goto s8
    @if %c%==7  goto s7
    @if %c%==6  goto s6
    @if %c%==5  goto s5
    @if %c%==4  goto s4
    @if %c%==3  goto s3
    @if %c%==2  goto s2
    @if %c%==1  goto s1
    @if %c%==0  goto s0 
    :s9
    sqlcmd -E -dmaster -W -b -m-1 -h-1 -s^| -i %SQL_NAME% -l60 -v P1=%1 P2=%2  p3=%3 p4=%4 p5=%5 p6=%6 p=%7 p8=%8 p9=%9 
    @goto end
    :s8
    sqlcmd -E -dmaster -W -b -m-1 -h-1 -s^| -i %SQL_NAME% -l60 -v P1=%1 P2=%2  p3=%3 p4=%4 p5=%5 p6=%6 p=%7 p8=%8  
    @goto end
    :s7
    sqlcmd -E -dmaster -W -b -m-1 -h-1 -s^| -i %SQL_NAME% -l60 -v P1=%1 P2=%2  p3=%3 p4=%4 p5=%5 p6=%6 p=%7  
    @goto end
    :s6
    sqlcmd -E -dmaster -W -b -m-1 -h-1 -s^| -i %SQL_NAME% -l60 -v P1=%1 P2=%2  p3=%3 p4=%4 p5=%5 p6=%6  
    @goto end
    :s5
    sqlcmd -E -dmaster -W -b -m-1 -h-1 -s^| -i %SQL_NAME% -l60 -v P1=%1 P2=%2  p3=%3 p4=%4 p5=%5  
    @goto end
    :s4
    sqlcmd -E -dmaster -W -b -m-1 -h-1 -s^| -i %SQL_NAME% -l60 -v P1=%1 P2=%2  p3=%3 p4=%4  
    @goto end
    :s3
    sqlcmd -E -dmaster -W -b -m-1 -h-1 -s^| -i %SQL_NAME% -l60 -v P1=%1 P2=%2  p3=%3 
    @goto end
    :s2
    sqlcmd -E -dmaster -W -b -m-1 -h-1 -s^| -i %SQL_NAME% -l60 -v P1=%1 P2=%2  
    @goto end
    :s1
    sqlcmd -E -dmaster -W -b -m-1 -h-1 -s^| -i %SQL_NAME% -l60 -v P1=%1 
    @goto end
    :s0
    sqlcmd -E -dmaster -W -b -m-1 -h-1 -s^| -i %SQL_NAME% -l60
    @goto end
    :end 
    @if %errorlevel%==1  goto bad
    @if %errorlevel%==0  goto good
    @goto exit
    
    :bad
    @echo file %SQL_NAME% ran failed
    @goto exit
    
    :good
    @echo file %SQL_NAME% ran successfully
    @goto exit
    
    :exit
    @echo exit 

    case 1
  1. case2
  2.  http://download.csdn.net/detail/wangzhpwang/8471369

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值