Может ли создание объекта в проекте базы данных (SqlPackager) быть условным? - PullRequest
0 голосов
/ 10 октября 2018

У меня есть проект базы данных Microsoft SQL Server с сотнями объектов (таблиц, процедур и т. Д.).Результирующая база данных используется в двух контекстах - некоторые клиенты получают базу данных со всеми объектами, но базы данных некоторых клиентов содержат только подмножество объектов.Около 75% из них.

Есть ли способ пометить каждый объект в проекте базы данных таким образом, чтобы я мог сказать, должен ли он быть развернут или не основан на каком-либо переключении?

Я подумал о нескольких вариантах:

  1. Использование сценариев до / после развертывания.Я действительно не хочу этого делать, так как это сводит на нет многие преимущества использования проекта базы данных.
  2. Установите ВСЕ объекты и выполните шаг после развертывания, который удаляет объекты, которыемы не хотим в «подмножестве» установить.Мне показалось это хакерским.
  3. Разбейте один проект базы данных на два проекта: один с необходимыми объектами и один с необязательным.
  4. Имеет два проекта, один со «всеми» и один с подмножеством.75% файлов появятся в обоих проектах.Затем я устанавливаю базу данных соответствующего проекта

Я думаю, что # 3 и # 4 звучат выполнимо, но я все еще надеюсь, что есть более простое, более удобное в обслуживании решение.

1 Ответ

0 голосов
/ 11 октября 2018

Похоже, что правильный способ сделать это - создать второй проект базы данных, который ссылается на первый.

База данных A будет иметь все общие объекты, а база данных B будет иметь ссылку на базу данных A (Ссылки -> Добавить ссылку на базу данных).Я могу отправить базу данных A как «сокращенную» базу данных или базу данных B как «полную» базу данных.

Все еще работаю с ней, но, похоже, это самый чистый и правильный способ сделать то, что я хочу.

Здесь есть хорошая рекомендация от Microsoft, в частности, создание «составного проекта».https://msdn.microsoft.com/en-us/library/jj684584(v=vs.103).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...