`
zhuojb
  • 浏览: 90028 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

批量执行文件夹下面的所有sql脚本

阅读更多
drop function f_split
go

/*****************************************************************
--PROGRAMMER:EDWARD
--PURPOSE:批量执行sql脚本,批量执行文件夹下面的所有sql脚本
--DATETIME:2006-11-1
*****************************************************************/
if exists(select * from sysobjects where name='exeSqlFileBatch' and type='P')
begin
  drop proc exeSqlFileBatch
end
go
create procedure exeSqlFileBatch
(
@returnCode int=0 output, --返回错误数
@returnSucceed int=0 output, --成功执行文件数量
@serverName varchar(1000), --服务器名称
@dataBase   varchar(500), --数据库名称
@uid     varchar(50), --用户名
@pwd        varchar(50), --密码
@filePath varchar(5000)  --文件路径
)
with encryption as
declare @strsql varchar(6000)
set @strsql=' dir '+@filePath+'\*.tab'

--创建临时表
create table #tmptb(fileDes varchar(5000))
--将文件夹信息插入临时表
insert into #tmptb
exec master.dbo.xp_cmdshell @strsql

if @@error <>0
begin
set @returnCode=1
return @returnCode
end

--从临时表中提取有用的记录
select dbo.f_split(fileDes,' ')as fileDes
into #tmepUse from #tmptb
where fileDes like '%.tab'

--定义游标
declare  fetFileName cursor
for select fileDes from #tmepUse

declare @strFileName varchar(2000)
declare @reExe int

--定义错误信息表
create table #errorTable(errorFileName varchar(1000))


--打开游标并历遍进行取值
open fetFileName
fetch next from fetFileName into @strFileName
while @@FETCH_STATUS = 0
begin
--执行该数据脚本文件 【OSQL命令行执行查询工具】[-S服务器][-U登录标识符][-P口令][-d使用数据库名][-i输入文件][][]
set @strsql='osql -S '+@serverName
      +' -U '+ @uid +' -P '+@pwd +' -d '+@dataBase +' -i '
      +@filePath +'\'+@strFileName
exec @reExe=master.dbo.xp_cmdShell @strsql
--统计执行错误数执行成功数
if @reExe=0
  set @returnSucceed=@returnSucceed+1
else
  begin
   --没办法,xp_cmdShell 总返回零。可能无法获取osql所发生的错误
   insert #errorTable values(@strFileName)
   set @returnCode=@returnCode+1
  end

fetch next from fetFileName into @strFileName
end

close fetFileName
deallocate fetFileName

--返回错误信息
select *from #errorTable

return


--测试--------------------------------------------------------------------------
--测试准备
--测试前请先创建函数
/*-------------------
--实现split功能 的函数
--只返回最后的一串
*/
if exists(select * from sysobjects where name='f_split' and type='FN')
begin
  drop function f_split
end
go
create function f_split(
@SourceSql varchar(8000),--字符串
@StrSeprate varchar(10)--分隔符
)
returns  varchar(1000)
as
begin
    declare @i int
    set @SourceSql=rtrim(ltrim(@SourceSql))
    set @i=charindex(@StrSeprate,@SourceSql)
    while @i>=1
    begin
        set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
        set @i=charindex(@StrSeprate,@SourceSql)
    end
    return @SourceSql
end


--恢复系统存储过程XP_CMDSHELL
use master
go
sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
go
--sql2005下启用XP_CMDSHELL
-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO



--测试
declare @returnCode int
declare @returnSucceed int
set @returnCode=0
set @returnSucceed=0
set nocount on
exec exeSqlFileBatch @returnCode output,@returnSucceed output,'.','test11','sa','sa','E:\QPCT系统v2.0\SERVER\SQL_SPACE_JZX'
print @returnCode
print @returnSucceed

冠亿科技,尽心尽力
分享到:
评论

相关推荐

    SQL脚本批量执行脚本

    此BAT脚本可以帮助开发人员将某文件夹下所有SQL脚本按文件名依次在指定数据库中批量执行。并且生成日志文件,可查看执行过的所有脚本名称和错误信息。 注意: (1) 使用前需确保已将sqlcmd加入到系统环境变量中。 (2...

    bat+sqlcmd 批量运行脚本

    bat+sqlcmd 批量运行脚本 Hello,此BAT脚本可以帮助开发人员将某文件夹下所有SQL脚本按文件名依次在指定数据库中批量执行。不用忍受powershell invoke-sqlcmd 的笨重,在指运行时多一种选择。

    批量执行SQL脚本工具-PowerShell.7z

    powershell批量执行SqlServer脚本。包含Windows2012和Windows2016版本

    LTP.Net代码自动生成器(DbToCode)

    DbToCode 同时提供方便的数据库查询管理,SQL脚本生成,存储过程生成,数据库文档生成,Web项目文件发布,代码生成自动导出文件等多项开发工作中常用到的功能,您可以很方便地进行项目开发。 详细功能说明: 1....

    基于SpringBoot+Bootstrap实现linux自动化运维监控系统,完美实现了分布式监控

    基于微服务springboot架构开发,是轻量高性能的...3.运行所需sql脚本(本项目使用mysql数据库),在sql文件夹下,在mysql数据库里创建数据库wgcloud,导入wgcloud.sql即可 4.bin目录下的脚本文件,为server和agent启

    SpringBoot+MybatisPlus+MySql+vue+elementui+h5前后台分离项目模板

    3、安装MySql,打开person.sql文件并执行里面的脚本,创建测试数据 4、用eclipse或idea打开maven项目SpringBootMybatisPlus,在application-dev.yml文件中配置数据库账号和密码,运行DemoApplication 5、安装配置好...

    NETSNS社交系统 v1.5.1 bulid 081209 源码版.rar

    NetSNS是基于Asp.Net开发的社交...请在SQL数据库查询分析器中执行database/sql/1.sql(表结构),database/sql/2.sql(初始值),SQL脚本也可以在这里单独下载(最后更新 2008年12月08日) 帐号:admin 密码:admin888

    基于YOLOv5的道路标志识别项目(yolov5界面GUI)yolov5的道路标志识别项目,使用Pyqt5开发界面,Yolov5

    右侧栏是自定义参数的批量图像数据增强(按一定概率对一个文件夹所有图片使用勾选的数据增加方法)1. 设置数据库 为了运行应用程序,您需要设置您的 MySQL 数据库。按照以下步骤准备您的数据库: 自动数据库创建...

    动软.Net代码自动生成器(Codematic)

    Codematic 同时提供方便的数据库查询管理,SQL脚本生成,存储过程生成,数据库文档生成,Web项目文件发布,代码生成自动导出文件等多项开发工作中常用到的功能,您可以很方便地进行项目开发。 &lt;br/&gt;详细...

    1345个易语言模块

    取 窗口内所有控件标题.ec 取窗口句柄-外挂海万能模块1.53.ec 取系统信息.ec 取系统信息v2.1.ec 取系统信 息v2[1].1.ec 取系统启动时间.ec 取系统字体列表1.2.ec 取系统字体列表1[1].2.ec 取系统目 录.ec 取纯数字...

    Visual C++程序开发范例宝典(光盘) 第四部分

    实例233 在程序中执行SQL脚本 实例234 利用SQL语句执行外围命令 第9章 SQL查询相关技术 9.1 通用查询 实例235 SQL语句的应用方法 实例236 SQL语句的模糊查询 实例237 利用查询语句复制表结构 9.2 查询控件 ...

    Visual C++程序开发范例宝典(光盘) 第八部分

    实例233 在程序中执行SQL脚本 实例234 利用SQL语句执行外围命令 第9章 SQL查询相关技术 9.1 通用查询 实例235 SQL语句的应用方法 实例236 SQL语句的模糊查询 实例237 利用查询语句复制表结构 9.2 查询控件 ...

    禅道项目管理软件6.3版

    2098 插件安装时判断sql错误,重复添加类的错误尝试忽略 2097 调整成功卸载之后的样式 2096 调整卸载插件的样式 2095 梳理每个对象的状态的颜色 2094 安装插件页面样式调整 2093 修改安装时写入配置文件的提示 2092 ...

    NETSNS社交系统 v1.5.1 build 081209 正式版

    这是NETSNS社交系统 v1.5.1 build ...请在SQL数据库查询分析器中执行database/sql/1.sql(表结构),database/sql/2.sql(初始值),SQL脚本也可以在这里单独下载(最后更新 2008年12月08日) 用户名admin,密码admin888

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例005 下载并安装JRE执行环境 8 实例006 编程输出星号组成的等腰三角形 9 1.2 开发工具 11 实例007 下载最新的Eclipse 11 实例008 为最新的Eclipse安装中文语言包 12 实例009 活用Eclipse的工作空间 14 实例010 在...

    ASP.NET2.0高级编程(第4版)1/6

     和客户端脚本81 4.1 ASP.NET服务器控件81 4.1.1 服务器控件的类型82 4.1.2 用服务器控件建立页面83 4.1.3 处理服务器控件的事件84 4.2 给服务器控件应用样式87 4.2.1 控件的常见属性87 4.2.2 使用层叠样式表  ...

    管家婆辉煌版 门店使用服务类

    把5个文件都拷贝到辉煌版安装目录下 2、请打开sql的查询分析器,在master处选择对应账套后,打开脚本“存储过程.sql”,点击F5执行即可。 3、执行“PDataMove.exe”。 注意:执行SQL要有完整安装的SQL SERVER并打补丁...

Global site tag (gtag.js) - Google Analytics