Как сгенерировать SQL скрипт создания объектов и данных в Microsoft SQL Server?
Привет! Сегодня мы поговорим о том, как можно сгенерировать SQL скрипты создания объектов базы данных Microsoft SQL Server, включая сами данные, стандартными средствами SQL Server Management Studio (SSMS).
Что такое SQL скрипт объекта базы данных?
SQL скрипт объекта базы данных – это SQL инструкция, с помощью которой создается этот объект, сохраненная в текстовом файле.
Такой SQL скрипт можно открыть любым текстовым редактором, скопировать текст SQL запроса и выполнить, например, в среде SQL Server Management Studio, таким образом, создав объект базы данных, не разрабатывая соответствующие SQL инструкции самостоятельно.
Также SQL скрипты можно открыть специальными программами, которые умеют работать с SQL скриптами, и выполнять их на базе данных.
Что могут содержать SQL скрипты?
SQL скрипты объектов базы данных могут содержать:
Для чего могут потребоваться SQL скрипты объектов базы данных?
SQL скрипты объектов базы данных могут потребоваться администраторам или разработчикам, например, для того, чтобы в случае необходимости иметь возможность быстро восстановить эти объекты.
Или для того, чтобы передать эти SQL скрипты другому администратору, разработчику или заказчику, чтобы он создал подобные объекты на своем экземпляре SQL Server.
Таким образом, такие SQL скрипты необходимы для хранения копий SQL инструкций, с помощью которых создавались объекты базы данных.
Как создать SQL скрипт объекта базы данных в Microsoft SQL Server?
Так как SQL скрипт – это обычный текстовый файл, его можно создать вручную, например, когда Вы разрабатываете объект БД, Вы просто сохраняете SQL инструкцию в файл, и добавляете в него по мере необходимости другие SQL инструкции.
Однако также возможно автоматически сгенерировать SQL скрипты объектов базы данных специальными инструментами, например, в среде SQL Server Management Studio (SSMS). А как это делается, я сейчас и покажу.
Заметка! Если Вас интересует SQL и T-SQL, рекомендую посмотреть мои видеокурсы по T-SQL, с помощью которых Вы «с нуля» научитесь работать с SQL и программировать с использованием языка T-SQL в Microsoft SQL Server.
Создание SQL скрипта объекта базы данных Microsoft SQL Server
В качестве исходных данных у меня будет база данных TestDB и таблица Goods, SQL скрипт которой мне и нужно создать. При этом мне необходимо, чтобы скрипт включал не только определение инструкции CREATE, но и данные, которые содержит эта таблица.
В качестве инструмента я буду использовать SQL Server Management Studio.
Итак, давайте начнем.
Шаг 1 – Запускаем SSMS
Сначала запускаем среду SQL Server Management Studio любым удобным для Вас способом, иными словами, никаких особых манипуляций с открытием SSMS выполнять не требуется.
Шаг 2 – Запускаем задачу «Сформировать скрипты»
Далее в обозревателе объектов находим нужную нам базу данных, затем открываем контекстное меню правой кнопкой мыши, ищем пункт «Задачи», и выбираем задачу «Сформировать скрипты».
В итоге запустится мастер создания скриптов. В окне «Введение» можем сразу нажать «Далее».
Шаг 3 – Выбираем объекты для включения в SQL скрипт
После этого нам нужно выбрать объекты базы данных, которые необходимо включить в SQL скрипт. При этом нам доступно два варианта:
Так как мне нужно сохранить только одну таблицу, я выбираю второй вариант и отмечаю нужную таблицу, т.е. в моем случае Goods.
Шаг 4 – Задание параметров SQL скрипта
Теперь мы можем указать параметры формирования скрипта, в частности, каким образом мы хотим получить скрипт.
Доступно 3 способа:
Также есть и дополнительные параметры, чтобы их открыть, необходимо нажать на соответствующую кнопку.
В дополнительных параметрах мы можем более тонко настроить принцип формирования SQL скрипта, например, для того чтобы скрипт включал еще и SQL инструкции создания данных, необходимо в параметрах отметить соответствующий пункт, т.е. указать «Схема и данные».
Также Вы можете включить в скрипты инструкции DROP на случай, если Вам нужно пересоздать объекты.
После того как все параметры заданы, нажимаем «ОК», а после для продолжения кнопку «Далее».
Шаг 5 – Проверка параметров и запуск процесса создания скрипта
На данном шаге все проверяем и запускаем сам процесс формирования скрипта, т.е. нажимаем «Далее».
Шаг 6 – Завершение процесса и результат
Когда процесс будет завершен, программа сообщит Вам об этом, нажимаем «Готово».
Если его открыть, например, текстовым редактором, то можно посмотреть на все SQL инструкции. Они будут выглядеть примерно следующим образом.
Видео-инструкция
На сегодня это все, надеюсь, материал был Вам полезен, пока!
Формирование скриптов (среда SQL Server Management Studio)
SQL Server Management Studio предоставляет два механизма создания скриптов Transact-SQL. Создать скрипты для нескольких объектов можно с помощью мастера формирования и публикации скриптов. Можно также создать скрипты для отдельных или нескольких объектов с помощью меню Сформировать скрипт как в обозревателе объектов.
Подробное руководство по созданию скриптов для различных объектов с использованием SQL Server Management Studio (SSMS) см. в руководстве по Создание скриптов для объектов в среде SQL Server Management Studio.
Перед началом
Выберите механизм, который лучше всего соответствует имеющимся требованиям.
Мастер формирования и публикации скриптов
С помощью мастера формирования и публикации скриптов можно создать скрипт Transact-SQL для нескольких объектов. Этот мастер создает скрипт для всех объектов базы данных или скрипт для подмножества выделенных объектов. Мастер позволяет настраивать различные параметры скрипта, такие как включение разрешений, параметры сортировки, ограничения и т. д. Инструкции по использованию мастера см. в разделе Мастер формирования и публикации скриптов.
Меню «Сформировать скрипт как» в обозревателе объектов
Меню Сформировать скрипт как в обозревателе объектов служит для создания скрипта для одного объекта, нескольких объектов или нескольких инструкций одного объекта. Можно выбрать один из нескольких типов скрипта, например для создания, изменения или удаления объекта. Сохранить скрипт можно в окне редактора запросов — в файл или в буфер обмена. Скрипт создается в формате Юникода.
Создание скрипта для одного объекта
Создание скрипта для одного объекта
В обозревателе объектов подключитесь к экземпляру компонента Компонент SQL Server Database Engine и разверните его.
Разверните узел Базы данных, а затем разверните базу данных, содержащую объекты, для которых необходимо создать скрипт.
Укажите тип скрипта, например Создать или Изменить.
Выберите расположение для сохранения скрипта, например Новое окно редактора запросов или Буфер обмена.
Для создания скрипта для нескольких объектов одной категории можно использовать панель Подробности обозревателя объектов.
В обозревателе объектов подключитесь к экземпляру компонента Компонент SQL Server Database Engine и разверните его.
Разверните узел Базы данных, а затем разверните базу данных, содержащую объекты, для которых необходимо создать скрипт.
Щелкните левой кнопкой один из объектов, который нужно включить в скрипт.
Удерживая клавишу CTRL, щелкните левой кнопкой второй объект, который необходимо включить в скрипт.
Мастер формирования и публикации скриптов
С помощью мастера формирования и публикации скриптов можно создавать скрипты для переноса баз данных между экземплярами Компонент SQL Server Database Engine или База данных SQL Azure. Скрипты для базы данных вы можете создавать на экземпляре компонента ядра СУБД в локальной сети или из База данных SQL. Сформированные скрипты могут выполняться на другом экземпляре компонента ядра СУБД или База данных SQL. С помощью мастера также можно публиковать содержимое базы данных непосредственно в веб-службе, созданной с помощью проекта служб Database Publishing Services. Создать скрипты можно как для всей базы данных, так и ограничить их определенными данными или объектами.
Более подробный учебник по использованию мастера формирования и публикации скриптов см. на странице Учебник по использованию мастера создания скриптов.
Перед началом
Публикация в размещенной службе
Помимо создания скриптов, с помощью мастера формирования и публикации скриптов также можно публиковать базу данных в веб-службе размещения SQL Server определенного типа. Пакет SQL Server Hosting Toolkit предоставляет службы Database Publishing Services в виде проекта с общим источником на CodePlex. С помощью проекта служб Database Publishing Services поставщики услуг размещения могут создать набор веб-служб, упрощающий их клиентам развертывание баз данных в веб-службе. Дополнительные сведения о загрузке пакета SQL Server Hosting Toolkit см. на странице SQL Server Database Publishing Services.
Чтобы опубликовать базу данных в веб-службе размещения, выберите параметр Опубликовать на веб-службе на странице Задание параметров скрипта мастера.
Permissions
Минимально необходимым разрешением для публикации базы данных является членство в предопределенной роли базы данных db_ddladmin в исходной базе данных. Минимально необходимым разрешением для публикации скриптов базы данных на экземпляре SQL Server у поставщика услуг размещения является членство в предопределенной роли базы данных db_ddladmin в базе данных-получателе.
Чтобы получить доступ к своим учетным записям на стороне поставщика услуг размещения для публикации с помощью мастера, пользователи также должны указать имя пользователя и пароль. Целевая база данных на стороне поставщика услуг размещения должна быть создана перед публикацией базы данных-источника. При публикации происходит перезапись объектов данной существующей базы данных.
Использование мастера формирования и публикации скриптов
Создание и публикация скрипта
В обозревателе объектов разверните узел экземпляра, содержащего базу данных, для которой следует создать скрипт.
Выберите пункт Задачи и щелкните Создать скрипты.
Выполните шаги в диалоговых окнах мастера.
Вводная страница
Эта страница описывает шаги по созданию и публикации скрипта.
Больше не показывать эту страницу — пропустить эту страницу при следующем запуске мастера формирования и публикации скриптов.
Страница «Выбор объектов»
На этой странице можно выбрать объекты для включения в скрипт, формируемый данным мастером. На следующей странице мастера можно найти параметр, позволяющий сохранять данные скрипты в выбранном месте или использовать их для публикации объектов базы данных у поставщика услуг размещения. Для этого у поставщика должна быть установлена служба SQL Server Database Publishing Services.
Внести в скрипт всю базу данных и все объекты базы данных — установите параметр, чтобы создать скрипт для всех объектов базы данных и самой базы данных.
Выбрать отдельные объекты базы данных — установите параметр, чтобы ограничить создание скрипта лишь определенными объектами в выбранной базе данных.
Объекты базы данных — выберите хотя бы один включаемый в скрипт объект.
Выбрать все — устанавливает все доступные флажки.
Отменить все — снимает все доступные флажки. Чтобы продолжить работу, должен быть выбран хотя бы один объект базы данных.
Страница «Задание параметров скрипта»
Эта страница позволит определить, должен мастер сохранять скрипты в выбранном месте или использовать их для публикации объектов базы данных для удаленного поставщика услуг размещения. Чтобы использовать функции публикации, необходимо иметь доступ к веб-службе, установленной с помощью веб-службы Database Publishing Services.
Параметры — если мастер должен сохранить скрипты в указанном расположении, выберите пункт Сохранить скрипты в заданном месте. Позднее вы можете выполнить скрипты для экземпляра компонента ядра СУБД или База данных SQL. Если мастер должен опубликовать объекты базы данных удаленно у поставщика услуг размещения, выберите пункт Опубликовать на веб-службе.
Сохранить скрипты в заданном месте — сохранение одного или нескольких файлов скриптов Transact-SQL в указанном местоположении.
Save as notebook (Сохранить как записную книжку) — сохранение скрипта в одном или нескольких SQL-файлах. Нажмите кнопку обзора ( . ), чтобы задать имя и выбрать местоположение файла.
Сохранить в буфер обмена — сохранение скрипта Transact-SQL в буфере обмена.
Открыть в новом окне запроса — сформировать скрипт в окне редактора запросов компонента Database Engine. Если не открыто ни одного окна редактора, в качестве назначения для скрипта открывается новое окно редактора.
Целевая база данных — выберите целевую базу данных, в которой необходимо опубликовать выбранные объекты. Сначала выберите поставщика, а потом целевую базу данных.
Страница «Дополнительные параметры скриптов»
Параметры — укажите дополнительные параметры, выбрав значение из списка, который находится справа от каждого из параметров.
Общие — следующие параметры применяются ко всему скрипту.
Проверка существования объекта — если установлено значение true, добавляет проверку существования перед созданием инструкции CREATE для объектов SQL. Пример: таблицы, представления, функции или хранимые процедуры. Инструкция CREATE упаковывается в оператор IF. Если вы знаете, что целевой объект является чистым, то скрипт намного чище. Если вы НЕ предполагаете, что в целевом объекте существуют другие объекты, появится сообщение об ошибке. По умолчанию False.
Продолжить выполнение скрипта при ошибке — значение False указывает, что выполнение скрипта останавливается при возникновении ошибки. Если значение равно True, то выполнение скрипта продолжается. По умолчанию False.
Преобразовать определяемые пользователем типы данных в базовые типы данных — если значение равно True, то определяемые пользователем типы данных (UDDT) преобразуются в базовые типы данных, которые использовались для их создания. Указывайте значение True в том случае, если в базе данных, в которой будет выполняться скрипт, отсутствуют определяемые пользователем типы данных. Если значение равно False, то используются определяемые пользователем типы данных. По умолчанию False.
Сформировать скрипт для зависимых объектов — формируется скрипт для всех объектов, необходимых для выполнения скрипта для выбранного объекта. Значение по умолчанию равно True.
Включить описательные заголовки — если значение равно True, то к скрипту добавляются описательные комментарии, разделяющие его на разделы для каждого объекта. По умолчанию False.
Включить предложение IF NOT EXISTS — если значение равно True, то в скрипт включается инструкция проверки существования объекта в базе данных. Если объект существует, то попытка его создания не выполняется. По умолчанию False.
Включить имена системных ограничений — если значение равно False, то значения по умолчанию для ограничений, которые были автоматически названы по имени исходной базы данных, автоматически переименовываются в соответствии с названием целевой. Если значение равно True, то ограничения имеют одно и то же имя в исходной и в целевой базах данных.
Включить неподдерживаемые инструкции — если значение равно False, то скрипт не содержит инструкций для объектов, не поддерживаемых выбранной версией сервера или типом компонента Database Engine. Если значение равно True, то в скрипте содержатся неподдерживаемые объекты. В каждой инструкции для неподдерживаемого объекта присутствует комментарий о том, что инструкция должна быть изменена перед выполнением скрипта на указанной версии SQL Server или типе компонента Database Engine. По умолчанию False.
Указывать схему в именах объектов — включает имя схемы в имя создаваемого объекта. Значение по умолчанию равно True.
Привязка скрипта — создает скрипт для связывания объектов по умолчанию и объектов правил. По умолчанию False. Дополнительные сведения см. в статьях CREATE DEFAULT (Transact-SQL) и CREATE RULE (Transact-SQL).
Внести в скрипт параметры сортировки — включает в скрипт сведения о параметрах сортировки. По умолчанию False. Дополнительные сведения см. в статье Collation and Unicode Support.
Внести в скрипт значения по умолчанию — включает объекты «значения по умолчанию», определяющие значения по умолчанию для столбцов таблиц. Значение по умолчанию равно True. Дополнительные сведения см. в статье CREATE DEFAULT (Transact-SQL).
Внести в скрипт расширенные свойства — включает в скрипт расширенные свойства, если они имеются у объекта. Значение по умолчанию равно True.
Тип скрипта компонента ядра СУБД — создает скрипт, который можно выполнить в выбранном типе База данных SQL или экземпляра компонента ядра СУБД SQL Server. Объекты, не поддерживаемые указанным типом, не включаются в скрипт. По умолчанию выбран тип исходного сервера.
Скрипт для версии сервера — создает скрипт, который можно выполнить в выбранной версии SQL Server. В скриптах для более ранних версий нельзя использовать новые возможности текущей версии. По умолчанию выбрана версия исходного сервера.
Внести в скрипт имена входа — если объект, включаемый в скрипт, является пользователем базы данных, этот параметр создает имена входа, от которых зависит пользователь. По умолчанию False.
Внести в скрипт разрешения уровня объектов — включает скрипты, задающие разрешения для объектов в базе данных. По умолчанию False.
Типы данных для внесения в скрипт — выбирает включаемое в скрипт содержимое: Только данные, Только схема или то и другое. Значение по умолчанию равно Только схема.
Параметры таблицы или представления — следующие параметры применяются только к скриптам для таблиц и представлений.
Создать скрипт для отслеживания изменений — вносит в скрипт отслеживание изменений, если данная функция включена в исходной базе данных или в таблицах исходной базы данных. По умолчанию False. Дополнительные сведения см. в статье Об отслеживании изменений (SQL Server).
Внести в скрипт проверочные ограничения — добавляет ограничения CHECK в скрипт. Значение по умолчанию равно True. Ограничения CHECK требуют, чтобы данные, вводимые в таблицу, соответствовали некоторым указанным условиям. Дополнительные сведения см. в статье Ограничения уникальности и проверочные ограничения.
Внести в скрипт параметры сжатия данных — включает параметры сжатия данных в скрипт, если они настроены в исходной базе данных или в таблицах исходной базы данных. Дополнительные сведения см. в разделе Data Compression. По умолчанию False.
Внести в скрипт внешние ключи — добавляет к скрипту внешние ключи. Значение по умолчанию равно True. Внешние ключи задают связи между таблицами.
Внести в скрипт полнотекстовые индексы — включает в скрипт создание полнотекстовых индексов. По умолчанию False.
Внести в скрипт индексы — включает в скрипт создание индексов. Значение по умолчанию равно True. Индексы ускоряют поиск данных.
Внести в скрипт первичные ключи — включает в скрипт создание первичных ключей в таблицах. Значение по умолчанию равно True. Первичные ключи однозначно определяют каждую строку в таблице.
Внести в скрипт триггеры — включает в скрипт создание триггеров DML в таблицах. По умолчанию False. Триггер DML — это действие, которое выполняется при наступлении события языка обработки данных DML на сервере базы данных. Дополнительные сведения см. в разделе DML Triggers.
Внести в скрипт уникальные ключи — включает в скрипт создание уникальных ключей в таблицах. Уникальные ключи препятствуют вводу повторяющихся данных. Значение по умолчанию равно True. Дополнительные сведения см. в статье Ограничения уникальности и проверочные ограничения.
Страница «Сводка»
На этой странице содержится сводка параметров, выбранных в данном мастере. Чтобы изменить параметр, нажмите кнопку Назад. Чтобы начать формирование сохраненных или опубликованных скриптов, нажмите кнопку Далее.
Просмотр выбранных параметров — отображает выбранные на всех страницах мастера варианты параметров. Разверните узел, чтобы просмотреть выбранные параметры для соответствующей страницы.
Страница «Сохранение или публикация скриптов»
Эта страница служит для наблюдения за процессом работы мастера.
Сведения — в столбце Действие отображается ход работы мастера. После создания скриптов мастер сохраняет их в файле или использует для публикации на веб-службе, в зависимости от выбранных ранее параметров. После выполнения этих шагов выберите значение в столбце Результат, чтобы просмотреть результат для соответствующего шага.
Сохранить отчет — выберите, чтобы сохранить результаты работы мастера в файле.
Отмена — нажмите кнопку, чтобы закрыть мастер до завершения обработки или в случае возникновения ошибки.
Готово — выберите, чтобы закрыть мастер после завершения обработки или возникновения ошибки.
Сохранение скриптов
Если все параметры верны, настройка завершится успешно.
Создание скриптов в Azure Synapse Analytics
Если синтаксис, полученный при использовании команды «Создать скрипт для. «, не выглядит как синтаксис Azure Synapse Analytics, или появляется сообщение об ошибке, параметрам формирования скрипта в среде SQL Server Management Studio необходимо присвоить значение Azure Synapse Analytics.
Выбор хранилища данных SQL в качестве параметров формирования скрипта по умолчанию
Формирование скриптов для хранилища данных SQL, если оно не является параметром формирования скрипта по умолчанию
Параметры, заданные на шаге 4, не будут запомнены. Если вы хотите, чтобы эти параметры были запомнены, выполните инструкции, указанные в статье Выбор хранилища данных SQL в качестве параметров формирования скрипта по умолчанию.