• 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=SERVERNAMEINSTANCENAME
    @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%==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 -S%svrName% -U%uname% -P%upwd% -d%db% -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 -S%svrName% -U%uname% -P%upwd% -d%db% -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 -S%svrName% -U%uname% -P%upwd% -d%db% -i%SQL_NAME% -l60 -v P1=%1 P2=%2  p3=%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=%2  p3=%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=%2  p3=%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=%2  p3=%3 p4=%4  
    @goto end
    :s3
    @sqlcmd -S%svrName% -U%uname% -P%upwd% -d%db% -i%SQL_NAME% -l60 -v P1=%1 P2=%2  p3=%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%  <span style="font-size: 11.8181819915771px; font-family: Arial, Helvetica, sans-serif;">-l60 </span>
    @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文件,批量执行。

    执行




     附上:

    下载

  • 相关阅读:
    js 每个月有多少天算法
    js 树的操作
    画线
    程序员如何防止脑疲劳
    汉字求出拼音缩写
    datagird 多行外于编辑状态
    overflow: hidden 失效
    CSS 相对/绝对(relative/absolute)定位系列(三)
    display:inlineblock在Chrome与FF下导致的间隙
    css ul li 的使用及浏览器兼容问题
  • 原文地址:https://www.cnblogs.com/lytwajue/p/6829656.html
Copyright © 2020-2023  润新知