sp_readerrorlog (Transact-SQL)

适用范围:SQL Server

允许读取 SQL Server 的内容或SQL Server 代理错误日志文件并筛选关键字。

Transact-SQL 语法约定

语法

sp_readerrorlog
    [ [ @p1 = ] p1 ]
    [ , [ @p2 = ] p2 ]
    [ , [ @p3 = ] N'p3' ]
    [ , [ @p4 = ] N'p4' ]
[ ; ]

参数

[ @p1 = ] p1

要查看的日志的整数值。 @p1为 int,默认值为 0. 当前错误日志的值为 0. 上一个是 1ERRORLOG.1),前一个是 2 (ERRORLOG.2),依依如此。

[ @p2 = ] p2

要查看其日志的产品的整数值。 @p2为 int,默认值为 NULL. 用于 1 SQL Server 或2SQL 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.2ERRORLOG.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';