sp_readerrorlog (Transact-SQL)

适用于:SQL Server

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

Transact-SQL 语法约定

语法

sp_readerrorlog  
    @p1        int = 0,
    @p2        int = NULL,
    @p3        nvarchar(4000) = NULL,
    @p4        nvarchar(4000) = NULL

参数

[@p1 = ]“log_number”

要查看的日志的整数 (int) 值。 当前错误日志的值为 0,上一个值为 1(Errorlog.1),前一个为 2(Errorlog.2),依此等。

[@p2 = ]“product ID”

要查看其日志的产品的整数 (int) 值。 将 1 用于 SQL Server 或 2 SQL Server 代理。 如果未指定值,则使用 SQL Server 产品

查看错误日志时要筛选的字符串值的字符串值。 此值为 nvarchar(4000), 默认值为 NULL。

要筛选的其他字符串的字符串值,以便在查看错误日志时进一步优化搜索。 此值为 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'

另请参阅