Как создать частичную копию объектов БД (таблиц, функций, хранимых процедур и т. Д.) В SQL Server? - PullRequest
0 голосов
/ 27 апреля 2018

Для проекта объединения со сторонней организацией мне нужно создать новую базу данных в SQL Server (2014SP2), которая будет включать в себя только основные объекты из нашего текущего и без каких-либо данных, кроме некоторых основных настроек, которые я буду INSERT INTO позже.

Я поддерживаю наши DDL скрипты на GitHub, поэтому каждый день каждый новый скрипт будет сохраняться там, а также на нашем локальном SQL Server с расширением .sql, а затем будет собираться и обрабатываться моя хранимая процедура mySP через наши тестовые базы данных. Когда все будут довольны и все будет проверено, я отправлю сценарий нашим администраторам баз данных для подачи заявки в прямом эфире.

Чтобы ответить на этот новый запрос, я подумал реализовать тот же подход:

  1. Чтобы все соответствующие сценарии были сохранены на новом SQL Server.
  2. Запустите хранимую процедуру mySP, которая их заберет и обработать один за другим: выполнит сценарии, запишет ошибки (я уже знаю, что будут некоторые, например, внешние ключи на таблиц, которые могут еще не существовать), пришлите мне письмо со списком ошибки, а затем мне придется их исправить вручную (например, пересобрать эти внешние ключи).

Мой вопрос, есть ли лучший подход, пожалуйста?

Пример моего текущего процесса:

Шаг 1 - сохранить скрипт с расширением .sql на SQL Server. пример для такого скрипта ниже

/*********************************************************************/
--   Date   |Developer's Name    | Version | Description 
--27/04/2018| Mr Smith           |    12   | Added new column myColumn
-----------------------------------------------------------------------
ALTER TABLE myTable
ADD myColumn BIT DEFAULT 0 NOT NULL;

Шаг 2 - моя хранимая процедура по расписанию будет запускаться каждый час и будет собирать все файлы .sql из предопределенного местоположения и обрабатывать их, отправляя мне электронное письмо. Сценарий здесь: http://www.sqlfiddle.com/#!18/e3309/1

Любой совет будет высоко ценится.

...