/*     2005版本 和2000 版本 sql server 错误日志结果不同。     下面是 适用于 SQL2000的     其中加入了 自己编写的一个ftp小程序 用来上传 相关日志状况

*/

IF object_id('tempdb..#error_log') IS NOT NULLDROP TABLE  #error_loggo

--2000  CREATE TABLE #error_log(id INT IDENTITY(1,1), ErrorContent VARCHAR(8000),continueRow int)insert INTO #error_log EXEC master.dbo.xp_readerrorlog   

UPDATE  a SET ErrorContent = LEFT(b.ErrorContent,23) + a.ErrorContentFROM #error_log aINNER JOIN #error_log b ON a.id = b.id + a.continueRowWHERE a.continueRow>0

DECLARE @str VARCHAR(8000)SET @str= 'SELECT id,errorcontent,continuerow FROM #error_log WHERE ErrorContent LIKE     CONVERT(VARCHAR(10),DATEADD(dd,-1,GETDATE()) ,120) +''%''OR ErrorContent LIKE   CONVERT(VARCHAR(10),GETDATE() ,120) +''%'''

exec talkins.dbo.p_exporttb   @sqlstr= @str,@path= 'e:\fanr\temp ',@fname= 'SQLLog.xls' ,@sheetname ='log'goexec master..xp_cmdshell 'e:\fanr\temp\myftp.exe p e:\fanr\temp\ /fanr SQLLog.xls'goexec master..xp_cmdshell 'del e:\fanr\temp\SQLLog.xls'

  

/*--数据导出EXCEL

导出表中的数据到Excel,包含字段名,文件为真正的Excel文件,如果文件不存在,将自动创建文件,如果表不存在,将自动创建表基于通用性考虑,仅支持导出标准数据类型

--邹建  2003.10(引用请保留此信息)--*/

/*--调用示例

p_exporttb   @sqlstr= 'select * from t2 ',@path= 'd:\ ',@fname= 'a1.xls' ,@sheetname ='local2'--*/   create PROCEDURE p_exporttb (@sqlstr   sysname, --查询语句,如果查询语句中使用了order   by   ,请加上top   100   percent,注意,如果导出表/视图,用上面的存储过程   @path   nvarchar(1000), --文件存放目录   @fname   nvarchar(250), --文件名   @sheetname   varchar(250)='' --要创建的工作表名,默认为文件名  )as--select @sqlstr= 'select * from t2 ',@path= 'd:\ ',@fname= 'a1.xls' ,@sheetname ='local'  declare   @err   int,@src   nvarchar(255),@desc   nvarchar(255),@out   int  declare   @obj   int,@constr   nvarchar(1000),@sql   varchar(8000),@fdlist   varchar(8000)  

--参数检测   if   isnull(@fname,'')='' set   @fname='temp.xls'  if   isnull(@sheetname,'')=''   set   @sheetname=replace(@fname,'.','#')  

--检查文件是否已经存在   if   right(@path,1)<>'\'   set   @path=RTRIM(@path)+'\'  IF object_id('tempdb..#tb') IS NOT NULLDROP TABLE #tbcreate   table   #tb(a   bit,b   bit,c   bit)  set   @sql=@path+@fname  insert   into   #tb   exec   master..xp_fileexist   @sql  

--数据库创建语句   set   @sql=@path+@fname  if   exists(select   1   from   #tb   where   a=1)  set   @constr='DRIVER={Microsoft Excel Driver (*.xls)};DSN='''';READONLY=FALSE'  +';CREATE_DB="'+@sql+'";DBQ='+@sql  else  set   @constr='Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="Excel 8.0;HDR=YES'  +';DATABASE='+@sql+'"'

--连接数据库   exec   @err=sp_oacreate   'adodb.connection',@obj   out  if   @err<>0   goto   lberr  

exec   @err=sp_oamethod   @obj,'open',null,@constr  if   @err<>0   goto   lberr  

--创建表的SQL    declare   @tbname   sysname  set   @tbname='##tmp_'+convert(varchar(38),newid())  set   @sql='select   *   into   ['+@tbname+']   from('+@sqlstr+')   a'  exec(@sql)  

select   @sql='',@fdlist=''  select   @fdlist=@fdlist+','+a.name    ,@sql=@sql+',['+a.name+']   '  +case   when   b.name   in('char','nchar','varchar','nvarchar')   then  'text('+cast(case   when   a.length>255   then   255   else   a.length   end   as   varchar)+')'  when   b.name   in('tynyint','int','bigint','tinyint')   then   'int'  when   b.name   in('smalldatetime','datetime')   then   'datetime'  when   b.name   in('money','smallmoney')   then   'money'  else   b.name   end  FROM   tempdb..syscolumns   a   left   join   tempdb..systypes   b   on   a.xtype=b.xusertype  where   b.name   not   in('image','text','uniqueidentifier','sql_variant','ntext','varbinary','binary','timestamp')  and   a.id=(select   id   from   tempdb..sysobjects   where   name=@tbname)  select   @sql='create   table   ['+@sheetname  +']('+substring(@sql,2,8000)+')'    ,@fdlist=substring(@fdlist,2,8000)  

exec   @err=sp_oamethod   @obj,'execute',@out   out,@sql  if   @err<>0   goto   lberr  

exec   @err=sp_oadestroy   @obj  

--导入数据   set   @sql='openrowset(''MICROSOFT.JET.OLEDB.4.0'',''Excel 8.0;HDR=YES    ;DATABASE='+@path+@fname+''',['+@sheetname+'$])'  

exec('insert   into   '+@sql+'('+@fdlist+')   select   '+@fdlist+'   from   ['+@tbname+']')  

set   @sql='drop   table   ['+@tbname+']'  exec(@sql)  return  

  lberr:  exec   sp_oageterrorinfo   0,@src   out,@desc   out    lbexit:  select   cast(@err   as   varbinary(4))   as   错误号    ,@src   as   错误源,@desc   as   错误描述  select   @sql,@constr,@fdlist  GO

  

把SQL Server 错误日志导出为EXCEL 并发送到指定的ftp 或者 共享盘相关推荐

  1. SQL Server自动化运维系列——监控磁盘剩余空间及SQL Server错误日志(Power Shell)...

    原文:SQL Server自动化运维系列--监控磁盘剩余空间及SQL Server错误日志(Power Shell) 需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的 ...

  2. 使用xp_readerrorlog命令读取SQL Server错误日志

    This article explores the xp_readerrorlog command for reading SQL Server error logs using T-SQL. 本文探 ...

  3. SQL Server查询结果导出到EXCEL表格

    导出SQL Server查询结果到excel文件 需求:将查询的两列数据导出到excel中 1.选择数据库,右键任务→导出数据,打开导入导出向导,单击下一步 2.在打开的SQL Server导入和导出 ...

  4. Web API——添加Swagger、SQL Server、日志记录、导出到Excel和Docker

    目录 介绍 要求 1.创建一个新的Web API项目 2.将Swagger添加到项目 3.将项目连接到SQL Server数据库 4.登录到SQL Server 5.添加"导出到Excel& ...

  5. 如何使用损坏或删除SQL Server事务日志文件重建数据库

    This is the last article, but not the least one, in the SQL Server Transaction Log series. In this s ...

  6. Excel与Sql Server互通导入导出跨语言

    目录 Excel与Sql Server互通导入导出跨语言 1.目标Excel缺少表的列标题字段 1.1.问题的提出从这里开始 1.2.参数的正确写法 1.3.附带说一下Jet 4.0 1.4.附带说一 ...

  7. SQL Server 无法生成 FRunCM 线程。请查看 SQL Server 错误日志和 Windows 事件日志(转)...

    前言: 今天遇到这个sql服务无法启用 .无法登陆 的情况..在google 百度 搜了一下.发现很多网站都是采集来的数据..(很奇怪这些采集站都那么靠前!) 照着文章里边的方法去试试都不行,,,后来 ...

  8. 服务器腾讯通文件数据源导入,连接到 Excel 数据源(SQL Server 导入和导出向导)...

    连接到 Excel 数据源(SQL Server 导入和导出向导) 04/02/2018 本文内容 适用于: SQL Server(所有支持的版本) Azure 数据工厂中的 SSIS Integra ...

  9. SQL Server 2008 R2导出数据脚本和导入数据库脚本的方法(原创+转载)

    以前看到有些朋友说必须SQL Server 2008才能导出包含数据的脚本,后来仔细研究发现其实SQL Server 2008 R2也是可以的,只需在导出的时候在高级中设置一下即可. 1.首先在数据库 ...

最新文章

  1. 修改mysql字符编码出现Job failed to start解决办法
  2. boost::function30的用法实例
  3. html如何控制弹窗位置,控制弹窗展示顺序
  4. 利用永恒之蓝入侵服务器复制文件,msf利用永恒之蓝进行漏洞攻击
  5. linux oracle em使用,Linux平台下启动oracle 11g EM控制台
  6. python编程入门-python编程入门(第3版)
  7. windows系统中Dotnet core runtime 安装后,无法启动次程序,因为计算机中丢失api-ms-win-crt-runtime-l1-1-0.dll的解决方法...
  8. 验证DG最大性能模式下使用ARCH/LGWR及STANDBY LOG的不同情况
  9. 【TabularData】DNN和表格数据分析建模综述
  10. 五子棋软件测试自学,初学者如何从零开始自学五子棋
  11. 静态多层Map缓存清除
  12. 图像处理库Pillow的使用
  13. 【0514 更新中】CVPR 2019 论文汇总 按方向划分
  14. android xp wifi连接不上,笔记本xp系统连接不上wifi怎么办
  15. 工作简历写些什么比较好? 优秀的求职简历模板包括哪些内容
  16. 学计算机的ctrl,学会这些电脑快捷键,瞬间成为电脑高手
  17. 项目的人员考核和激励
  18. modern android5.1,modern warships
  19. CSS3中文手册,新特性速查
  20. matlab求图像的能量图,如何计算图像的能量

热门文章

  1. Oracle的表空间和数据文件
  2. NULL,,String.Empty三者在C#中的区别
  3. Android SDK Manager无法更新的解决方案
  4. 日志处理--高效Linux命令整理
  5. How to become the truely yourself?
  6. 在centos7中安装redis,并通过node.js操作redis
  7. linux与windows互传文件、用户与用户组管理、密码配置文件
  8. 《交互式程序设计 第2版》一3.5 捕获简单用户交互行为
  9. HoloLens开发手记 - Unity之Spatial Sounds 空间声音
  10. 【ArcGIS 10.2新特性】ArcGIS 10.2 for Server新特性