Уважаемые слушатели! Обращаем ваше внимание, что 01.05.2024 и 09.05.2024 у нас выходные дни. Вы можете оставить сообщение в чате, мы обязательно ответим!

Корзина

Корзина

Частным лицам +7 (495) 232-32-16

Слушателям
от организации
+7 (495) 780-48-44

+7 (495) 780-48-49

Частным лицам +7 (495) 232-32-16

Слушателям
от организации
+7 (495) 780-48-44

+7 (495) 780-48-49

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

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

сфа

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

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

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

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

 

DBCC SHOWCONTIG WITH TABLERESULTS

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

DBCC SHOW_STATISTICS

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

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

Кстати, а вы знаете, что в новых версиях SQL Server есть более удобная альтернатива командам DBCC? На наших курсах по обслуживанию баз данных вы научитесь пользоваться этими новыми инструментами!

envelope

Спасибо! Вам на e-mail отправлено письмо со ссылкой для подтверждения

Если письмо не пришло, поищите его в папке со спамом или повторите подписку

email-checked.png

Вы подписались на рассылку

Спасибо за обращение! Ваш менеджер свяжется с Вами в течение нескольких минут.