
Veja como Filtrar em todos os errorlogs do SQL Server.
Filtrar em todos os errorlogs do SQL Server de uma forma mais prática usando T-SQL é mais simples do que imagina. Todos nós sabemos que as procedures xp_readerrorlog and sp_readerrorlog são muito úteis para buscar essas informações nos arquivos de log do SQL Server certo? Porém essas procedures permitem que busquemos informações em apenas um arquivo.
O que fazer se precisamos buscar em vários arquivos ou em todos os errrorlogs e agent logs do SQL Server de uma única vez?
Exatamente é o que essa procedure que vou colocar abaixo faz. Veja a seguir
USE master
GO
CREATE PROCEDURE dbo.uspFiltrarEmTodosErrorLogs (@TipoDeLog INT = 1, @Filtro NVARCHAR (4000) = '')
AS
BEGIN
-- Tabela para listar todos os logs
DECLARE @ListaDosLogs TABLE (LogNumber INT, StartDate DATETIME, SizeInBytes INT)
-- Colocar os resultados na tabela
DECLARE @Logs TABLE (LogDate DATETIME,
ProcessInfo NVARCHAR (4000),
Informacao NVARCHAR (4000))
-- Guardando os resultados
INSERT INTO @ListaDosLogs
EXEC xp_enumerrorlogs @TipoDeLog
-- Iterar em todos os logs e coletar todas as linhas de log
DECLARE @idx INT = 0
WHILE @idx <= (SELECT MAX (LogNumber) FROM @ListaDosLogs)
BEGIN
INSERT INTO @Logs
EXEC xp_readerrorlog @idx -- Numero Do Log
, @TipoDeLog -- 1=SQL Server log, 2=SQL Agent log
, @Filtro -- Filtro
, @Filtro
SET @idx += 1
END
-- Retornar os resultados
SELECT *
FROM @Logs
ORDER BY LogDate DESC
END
GO
Abaixo estão exemplos de execução dos scrtips:
Use master Go Exec dbo.uspFiltrarEmTodosErrorLogs 1,'ERROR' Go Exec dbo.uspFiltrarEmTodosErrorLogs 2,'ERROR' Go
Espero que gostem, não esqueçam de compartilhar com os amigos!
Grande abraço!
Wesley Mota
Latest posts by Wesley Mota (see all)
- bestes casino deutschland 111 - dezembro 6, 2025