sp_readerrorlog (Transact-SQL)
适用范围:SQL Server
允许读取 SQL Server 的内容或SQL Server 代理错误日志文件并筛选关键字。
语法
sp_readerrorlog
[ [ @p1 = ] p1 ]
[ , [ @p2 = ] p2 ]
[ , [ @p3 = ] N'p3' ]
[ , [ @p4 = ] N'p4' ]
[ ; ]
参数
[ @p1 = ] p1
要查看的日志的整数值。 @p1为 int,默认值为 0
. 当前错误日志的值为 0
. 上一个是 1
(ERRORLOG.1
),前一个是 2 (ERRORLOG.2
),依依如此。
[ @p2 = ] p2
要查看其日志的产品的整数值。 @p2为 int,默认值为 NULL
. 用于 1
SQL Server 或2
SQL Server 代理。 如果未指定值,则使用 SQL Server 产品。
[ @p3 = ] N'p3'
查看错误日志时要筛选的字符串的字符串值。 @p3为 nvarchar(4000),默认值为 NULL
.
[ @p4 = ] N'p4'
要筛选的其他字符串的字符串值,以便在查看错误日志时进一步优化搜索。 @p4为 nvarchar(4000),默认值为 NULL
. 此参数为第一个字符串搜索 @p3提供额外的筛选器。
返回代码值
无。
结果集
显示请求的错误日志的内容。 如果使用筛选器字符串,则仅显示与这些字符串匹配的行。
注解
每次启动 SQL Server 时,当前错误日志都会重命名为 ERRORLOG.1
; ERRORLOG.1
变为 ERRORLOG.2
、 ERRORLOG.2
变为、变为 ERRORLOG.3
等。 sp_readerrorlog
使你能够读取这些错误日志文件中的任何一个,只要文件存在。
权限
执行sp_readerrorlog
权限仅限于 sysadmin 固定服务器角色的成员。
示例
以下示例对 SQL Server 错误日志进行循环。
A. 读取当前的 SQL Server 错误日志
EXEC sp_readerrorlog;
B. 显示上一SQL Server 代理错误日志
EXEC sp_readerrorlog 1, 2;
°C 查找指示数据库正在启动的日志消息
EXEC sp_readerrorlog 0, 1, 'database', 'start';