logo Фёдор Самородов

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

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

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

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

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

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

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


Предыдущий Следующий
Все посты проекта
0 комментариев

Подарить подписку

Будет создан код, который позволит адресату получить бесплатный для него доступ на определённый уровень подписки.

Оплата за этого пользователя будет списываться с вашей карты вплоть до отмены подписки. Код может быть показан на экране или отправлен по почте вместе с инструкцией.

Будет создан код, который позволит адресату получить сумму на баланс.

Разово будет списана указанная сумма и зачислена на баланс пользователя, воспользовавшегося данным промокодом.

Добавить карту
0/2048