Oracle & SQLServer 脚本批量执行方法

    在工作中,有的项目使用Oracle数据库,有的使用SQL SERVER数据库,当一部分功能开发完毕后,提交测试人员测试,当提交的sql 脚本比较多的时候(例如30个sql脚本),测试人员反馈一个一个执行比较麻烦耗时,希望能批量一次性执行完所有脚本。

 

所以花时间分别研究了一下Oracle和Sql Server 批量执行多脚本的方法,如下分别描述。

 

Oracle:

Oracle处理方式是写一个总的sql,用@的方式把所有sql加上,只要执行总的sql即可。

 

1.准备数据,有两个脚本1.create_view.sql 和 2.fn_test_sj.sql。(以两个脚本为例,多脚本以此类推)。

 

2.一般会把需要执行的sql脚本放在一个文件夹里,好调用管理,例如放在prepareSql文件夹下。

 

3.和prepareSql文件夹同一层级,新建总的调用的sql脚本------ allSql.sql,里面写调用语句,如下:

         

@prepareSql/1.create_view.sql
@prepareSql/2.fn_test_sj.sql

 

4.在Oracle的PL/SQL工具的command 窗口中,输入【@】,然后按下【回车键】,选中allSql.sql执行,达到了批量执行的目的。

 

 

 

SQL Server 2008:

SQL Server没有像Oracle那样,可以在command窗口使用@的方式批量调用,不过,SQL SERVER提供了

SQLCMD的命令,实现批量调用的目的。

 

1.准备数据,两个脚本,1.test.sql,2test.sql,分别为两个简单的建表语句。

1.test.sql

use master
go

create table test_sj
(
  id int,
  name varchar(100)
)
go


2.test.sql

use master
go

create table test_sj1
(
  id int,
  name varchar(100)
)
go

 

2.新建一个文本,里面编写调用脚本:
 
@ECHO OFF
rem auth by sj
rem *************数据库配置,根据实际使用数据库修改

set ip=192.168.18.203\home 
set user=sa 
set passwd=AX8bst

rem *************数据库配置,根据实际使用数据库修改


echo *********************开始执行!*******************************

sqlcmd  -m0 -r 1 -S %ip%  -U %user% -P %passwd%  -i 1.test.sql
sqlcmd  -m0 -r 1 -S %ip%  -U %user% -P %passwd%  -i 2.test.sql
           

echo *********************执行完毕!*******************************
pause>nul
 
 
将脚本另存为.bat格式,双击即可执行,看一下效果:
 
 
 
如果执行有问题,控制台会报错,因为脚本中是建表语句,在执行一遍,就可以看到错误,如图:
 
 
具体SQLCMD的命令的参数可以在cmd窗口输入 C:\Users\tusiji>sqlcmd -?   查看,或者求助SQL SERVER官方文档,查看具体。
 
 
 
 

转载于:https://www.cnblogs.com/YiZhiMaLong/p/7954420.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值