mssql sql server sp_readerrorlog 系统存储过程使用简介分享


摘要:
下午将讲述sp_readerrorlog系统存储过程的功能及用法



一、sp_readerrorlog 系统存储过程简介

sp_readerrorlog:是根据CLR存储过程”xp_readerrrlog”,而生成的扩展存储过程
我们可以通过 sp_helptext ‘sp_readerrrlog’,获取脚本内容如下所示:

		create proc sys.sp_readerrorlog(  
		@p1  int = 0,  
		@p2  int = NULL,  
		@p3  varchar(255) = NULL,  
		@p4  varchar(255) = NULL)  
		as  
begin  
  
 if (not is_srvrolemember(N'securityadmin') = 1)  
 begin  
    raiserror(15003,-1,-1, N'securityadmin')  
    return (1)  
 end  
   
 if (@p2 is NULL)  
  exec sys.xp_readerrorlog @p1  
 else  
  exec sys.xp_readerrorlog @p1,@p2,@p3,@p4  
end  
	  

通过以上脚本内容我们可以看出:
1.最多可以接收四个参数 分别为 存档文件编号、存档文件类型、查找包含字符串1、查找包含字符串2
2.运行此存储过程,需要当前账户拥有”securityadmin”管理角色
———————————————
sp_readerrrlog存储过程参数说明:
参数1:日志存档编号 (0代表当前日志、1代表存档编号1 2代表存档编号2 …)
参数2:日志类型 (1 sql server日志 2 sql agent(sql代理日志))
参数3:查询包含的字符串
参数4:查询包含的字符串



二、sp_readerrorlog 系统存储过程举例应用

例:

 /*获取存档编号为1的日志 sql server日志 
 里面的文本包含 instance 和sql两个字符串
 并按照 desc的顺序输出结果集
*/
exec sp_readerrorlog 1,1,'sql','instance'
/*获取当前日志*/
exec sp_readerrorlog

/*获取存档编号为1的日志*/
exec sp_readerrorlog 1
 
mssql_sqlserver_sp_readerrorlog

mssql_sqlserver_sp_readerrorlog