CREATE TABLE dbo.FailedLogin ( EventID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED, EventDate DATETIME NOT NULL, LoginName sysname NOT NULL, ClientName NVARCHAR(255) NULL ); GO CREATE TABLE #ErrorLog ( LogDate DATETIME, ProcessInfo NVARCHAR(255), LogText NVARCHAR(MAX) ); GO INSERT INTO #ErrorLog ( [LogDate], [ProcessInfo], [LogText] ) EXEC xp_readerrorlog 0, 1, 'Login Failed'; INSERT INTO dbo.FailedLogin (EventDate, LoginName, ClientName) SELECT LogDate, SUBSTRING(LogText, CHARINDEX('''' , LogText) + 1, CHARINDEX('''', LogText, CHARINDEX('''' , LogText) + 1) - CHARINDEX('''' , LogText) - 1) AS LoginName, SUBSTRING(LogText, CHARINDEX('[CLIENT', LogText) + 9, CHARINDEX(']', LogText) - CHARINDEX('[CLIENT', LogText) - 9) AS ClientName FROM #ErrorLog WHERE ProcessInfo = 'Logon' AND CHARINDEX('Login failed', LogText) > 0; DROP TABLE #ErrorLog; GO