2016-04-11 2 views
0

В настоящее время мы начали разработку базы данных SQL Server с использованием SQL Server Database Project. В будущем эта база данных должна быть распространена на N различных экземпляров SQL-сервера. Каждый экземпляр должен иметь ссылку связанного сервера с экземплярами друг друга, и каждый экземпляр базы данных должен иметь распределенное разделенное представление, ссылающееся на другие экземпляры этой базы данных.SSDT с распределенным сценарием базы данных

Для тестирования я создал 2 различных проектов каждая из которых содержит связанные референции сервер и копию секционированной зрения ... но первый проект не будет компилироваться из-за ошибки

Error: SQL71561: View: [dbo].[Sample] has an unresolved reference to object [$(SAMPLESERVER_1)].[$(SampleDB)].[dbo].[T_Sample].

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

Можете ли вы указать мне на возможное решение (ы) или SSDT не применимо в распределенных средах.

ответ

1

Bwa-ha-ha. SSDT и связанный сервер ... Добро пожаловать! :) Чтобы быть справедливым, нет ничего сложного, когда вы знаете, что делать, однако это большая боль в ... когда вы только начинаете особенно, если пытаетесь переместить существующую базу данных в проект SSDT. IMHO связанных сервера должны быть описаны в SSDT стартовой страницы, чтобы сохранить разработчик часов ...

Хорошо, теперь вернемся к вопросу:

  1. Создание связанного dacpac базы данных;

    • Вы можете сделать это из Management Studio: RClick on db, Tasks -> Extract Data-Tier application. (если это произойдет из-за зависимостей (и, скорее всего, это сработает)), то

    • Найти местоположение файла SqlPackage.exe (это зависит от версии SQL Server) и запустить: «C: \ Файлы программы (x86) \ Microsoft SQL Server \ 120 \ DAC \ bin \ "SqlPackage.exe/Действие: Извлечь/SourceDatabaseName:" DBNAME "/SourceServerName:server.url.com/TargetFile:"F:\FILENAME.dacpac"/SourcePassword: SecretPass/SourceUser: YourUser

  2. Добавить dacpac в качестве ссылки базы данных Make sure you select Different Database and Server
  3. ДОПОЛНИТЕЛЬНО: Создание синонимов для каждого связанного объекта
  4. Используйте этот новый объект с помощью:... [$ (DbServer)] [$ (DbName)] [DBO] [T_Sample]

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

+0

Большое спасибо. Теперь я могу строить и тестировать. Вопрос: Если я добавлю новые объекты в схему, которые зависят от ссылок на связанные серверы, смогу ли я опубликовать их? – dev

+0

уверен. Если вы будете следовать моим шагам, вы сможете построить/опубликовать/код/​​и т. Д. :) Я просто повторю, что я настоятельно рекомендую создавать синонимы для каждого связанного объекта. На всякий случай я использую следующую сущность имени для синонимов: dbo.syn [t, v, p, f] _ExtDBNAME_ExtDbSchema_originalObjectName –

+0

Спасибо за разъяснение. Я последую за твоими шагами. – dev

Смежные вопросы