Поговорим о том, как получить скрипты стандартных действий, заложенных в пользовательский интерфейс Management Studio.
Подменю «Скрипт» (Script)
В SQL Server все действия описываются на внутреннем языке T-SQL, расширении языка SQL. Однажды, вам будет недостаточно стандартных действий, заложенных в Management Studio, и потребуется писать свои скрипты. Некоторые скрипты, которые захочется написать, должны будут содержать действия аналогичные стандартным действиям, уже заложенных в пользовательском интерфейсе Management Studio. Например, мы хотим одним действием выполнить операции: создание полной резервной копии базы данных и ее восстановление в другую базу, перезаписав базу-приемник. Для создания такого скрипта мы можем обратиться к документации, например на MSDN и, изучив необходимые процедуры, написать скрипт. Но есть другой вариант, гораздо проще. Зная как эти действия выполняются в пользовательском интерфейсе Management Studio, мы можем получить скрипты этих действий и объединить в один.
Практически в любом диалоговом окне Management Studio присутствует кнопка-подменю «Скрипт» (Script), нажав на которую, будет выведен скрипт действия в новом окне запроса. Также, помимо вывода в новое окно, раскрыв подменю «Скрипт» (Script), появляется возможность выполнить действия: сохранение скрипта в файл, копирование скрипта в буфер и внесение скрипта в задание.
Давайте воспользуемся этим методом и напишем скрипт для создания резервной копии и ее восстановления в базу приемник.
Создание скрипта
Первым делом, в дереве «Обозревателя объектов» вызовем правой клавишей мыши контекстное меню базы, которую мы хотим забэкапить. Далее, перейдем: «Задачи» (Tasks) → «Создать резервную копию» (Back Up).
Перед нами появится диалоговое окно, в котором необходимо установить параметры выполнения резервного копирования. Настройки создания резервной копии выходят за рамки данной статьи, поэтому я выберу только тип резервной копии и ее имя. Расположение файла, сгенерированное автоматически, мне подходит.
После этого необходимо нажать на кнопку-подменю «Скрипт» (Script), после чего в новом окне будет выведен скрипт действия.
Для получения скрипта восстановления нам потребуется наличие данной резервной копии, поэтому, выполним полученный скрипт. Заодно, таким образом, проверим его работоспособность.
Еще одним необходимым шагом является создание пустой базы приемника, если таковой еще не существует. Поскольку создание резервной копии предполагает наличие базы данных, полагаю, отдельно останавливаться на вопросе создания базы не имеет смысла.
Теперь перейдем к скрипту восстановления базы данных. Аналогичным образом из контекстное меню базы источника выберем «Задачи» (Tasks) → «Восстановить» (Restore) → «Базу данных» (Database).
В открывшемся диалоговом окне необходимо выбрать базу приемник, база источник будет указана изначально верно, но проверить не повредит. В списке резервных копий необходимо выбрать ранее созданную.
На вкладке «Параметры» (Options) отметим опцию «Перезаписать существующую базу данных» (Overwrite the existing database)
Теперь опять нажмем на кнопку-подменю «Скрипт» (Script). Полученный скрипт перенесем в первый файл.
Наш скрипт готов. Теперь его можно сохранить и вызывать при необходимости. Другой его вариант использования — включить скрипт в план обслуживания (статья «Механизм «Планы обслуживания» и механизм заданий MS SQL Server») или добавить в задания.
В заключение
Данный пример лишь демонстрация возможного использования механизма генерации скриптов стандартных действий, но во многих случаях эта опция может сэкономить время и избежать ошибок при написании скрипта.