Уважаемые слушатели! Обращаем ваше внимание, что 01.05.2024 и 09.05.2024 у нас выходные дни. Вы можете оставить сообщение в чате, мы обязательно ответим!
Уважаемые слушатели! Теперь для вас работает номер технической поддержки 8 (800) 444-28-35 с 9:00 до 21:00

Частным лицам +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

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

Как будет оформлено обучение?

Оплачивать будет:

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