Откуда хранимая процедура Sys.xp_readerrorlog читает ее содержимое конкретно? - PullRequest
1 голос
/ 16 марта 2012

Я работаю с этой хранимой процедурой Sys.xp_readerrorlog уже около недели, и я узнал, что она принимает 7 параметров, чтобы полностью уточнить, как она должна отображать свои данные. Достаточно легко понять.

У меня сейчас вопрос, откуда именно эта хранимая процедура получает свои данные? Я знаю, что вы также можете просмотреть данные в браузере объектов SSMS, в разделе Управление в папке журналов SQL Server, хотя я пришел к теории, что диалоговое окно, открывающееся при чтении журналов, также использует эту процедуру для отображения пользователю в сетка.

Я сбит с толку. Я просмотрел системные базы данных и не нашел ничего (без таблицы), которое отдаленно напоминало бы результат, полученный в результате этой процедуры

exec sys.xp_readerrorlog 1,0,'','',null,null,N'Desc';

Любой эксперт, который может сказать мне, где хранятся фактические данные журнала, и можно ли их запрашивать с помощью оператора select, если у вас есть права администратора?

1 Ответ

3 голосов
/ 16 марта 2012

Он читает из файла журнала ошибок SQL Server , который представляет собой простой текстовый файл.Нет встроенного интерфейса к файлу из TSQL;xp_readerrorlog широко известен, но он также недокументирован, поэтому полагаться на него рискованно, хотя, конечно, вы можете использовать его , если вы не против этого риска.

Используя SMO, вы можете найти файл location но специального API для его чтения нет, потому что это просто текстовый файл.

...