Oracle & SQLServer 脚本批量执行方法

来源:互联网 发布:淘宝不能提交订单了 编辑:程序博客网 时间:2024/06/16 19:29

    在工作中,有的项目使用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.sqluse mastergocreate table test_sj(  id int,  name varchar(100))go2.test.sqluse mastergocreate table test_sj1(  id int,  name varchar(100))go

 

2.新建一个文本,里面编写调用脚本:
 
@ECHO OFFrem auth by sjrem *************数据库配置,根据实际使用数据库修改set ip=192.168.18.203\home set user=sa set passwd=AX8bstrem *************数据库配置,根据实际使用数据库修改echo *********************开始执行!*******************************sqlcmd  -m0 -r 1 -S %ip%  -U %user% -P %passwd%  -i 1.test.sqlsqlcmd  -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官方文档,查看具体。
 
 
 
 
  • 大小: 21.5 KB
  • Oracle批量执行例子.rar (507 Bytes)
  • 下载次数: 0
  • 大小: 5.7 KB
  • 大小: 14.5 KB
  • 大小: 21.5 KB
  • SQL_Server批量执行例子.rar (611 Bytes)
  • 下载次数: 0
  • 查看图片附件
原创粉丝点击