sp_readerrorlog (Transact-SQL)
适用于:SQL Server
允许读取 SQL Server 的内容或SQL Server 代理错误日志文件并筛选关键字。
语法
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 产品
[@p3 = ]“string_to_search”
查看错误日志时要筛选的字符串值的字符串值。 此值为 nvarchar(4000), 默认值为 NULL。
[@p4 = ]“string_to_search”
要筛选的其他字符串的字符串值,以便在查看错误日志时进一步优化搜索。 此值为 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'