10 июня 2022
1 минута

Как программно обработать выдачу сервисных команд DBCC

Администраторы баз данных часто используют сервисные команды DBCC. Но это именно команды, а не функции и не процедуры. И в инструкции SELECT их использовать не получится. Так как же получить программным путём доступ к результатам выполнения этих команд (например, для сценариев автоматизации обслуживания базы данных)?

Попробуйте вот такую двухходовую комбинацию.

Во-первых, нужно добиться, чтобы используемая команда DBCC выдавала результат в виде одной таблицы. Некоторые вызовы DBCC таблиц вообще не выдают, некоторые выдают их сразу несколько. Тут придётся посмотреть документацию, так как поведение разных DBCC-команд настраивается по-разному.

Например, для SHOWCONTIG нужно добавить опцию TABLERESULTS:

А команду DBCC SHOW_STATISTICS придётся разбить на три вызова:

Во-вторых, нужно сделать вызов DBCC динамическим и тогда вы сможете поместить его результат в таблицу при помощи конструкции INSERT…EXECUTE, вот так:


Бесплатный
Комментарии
avatar
Здесь будут комментарии к публикации