Поделиться через


Как изменить целевую платформу и опубликовать проект базы данных

 

Целевую версию SQL Server для проекта базы данных SQL Server Data Tools (SSDT) можно изменить на любой поддерживаемый экземпляр SQL Server (SQL Server 2005, 2008, 2008 R2, Microsoft SQL Server 2012 или SQL Azure). Это позволяет сосредоточить разработку базы данных в одном проекте, но публиковать ее в несколько экземпляров SQL Server по мере необходимости.

Кроме того, SSDT упрощает эту задачу, учитывая сведения о целевой платформе и автоматически обнаруживая любые ошибки в коде (например, если используются неподдерживаемые функциональные средства в проекте, который должен быть опубликован в SQL Azure).

System_CAPS_warningПредупреждение

Следующие процедуры используют сущности, созданные в предыдущих процедурах в разделах Разработка подключенной базы данных и Разработка базы данных вне сети с учетом проекта.

Изменение целевой платформы проекта

  1. В обозревателе решений щелкните правой кнопкой мыши проект и выберите пункт Свойства. Откройте вкладку Параметры проекта слева, чтобы получить доступ к странице свойств Параметры проекта.

  2. Раскрывающийся список Целевая платформа на этой странице содержит все поддерживаемые платформы SQL Server, в которых может быть опубликован проект базы данных. Для этой процедуры выберите SQL Azure.

Использование проверки платформы при изменении скриптов

  1. Щелкните правой кнопкой мыши таблицу Products в обозревателе решений и выберите Просмотр кода, чтобы открыть ее в редакторе Transact-SQL.

  2. Добавьте ON [PRIMARY] в конец инструкции CREATE TABLE.

  3. Обратите внимание, что на панели Список ошибок появляется следующая ошибка: SQL70015: «Ссылка на файловую группу и схема секционирования» не поддерживается в SQL Azure.

    SSDT автоматически проверяет скрипт с учетом целевой платформы. В этом случае SSDT возвращает ошибку, поскольку файловая группа не поддерживается в SQL Azure. Список неподдерживаемых Transact-SQL инструкций в SQL Azure см. в разделе Частично поддерживаемые инструкции Transact-SQL (база данных SQL Microsoft Azure).

  4. Удалите предложение ON. Обратите внимание, что ошибка немедленно исчезнет из области Список ошибок.

Публикация проекта базы данных

  1. Те, кто имеет доступ к экземпляру SQL Azure, могут пропустить следующий шаг. В противном случае щелкните правой кнопкой мыши проект TradeDev в обозревателе решений и выберите Свойства, чтобы получить доступ к странице свойств Параметры проекта. Воспользуйтесь раскрывающимся списком Целевая платформа, чтобы выбрать платформу SQL Server, в которой необходимо опубликовать проект.

  2. Щелкните правой кнопкой мыши проект TradeDev в обозревателе решений и выберите команду Опубликовать. В SSDT начнется построение проекта. Если отсутствуют какие-либо ошибки сборки, откроется диалоговое окно Опубликовать базу данных.

  3. В диалоговом окне Опубликовать базу данных щелкните Правка, чтобы изменить подключение целевой базы данных.

  4. В диалоговом окне Свойства соединения в поле «Имя сервера» введите имя экземпляра SQL Server и учетные данные для аутентификации. В поле Подключение к базе данных введите NewTrade. Это равносильно попытке опубликовать конкретный проект базы данных в новой базе данных. Кроме того, можно выбрать существующую базу для публикации в ней. Например, если выбрана существующая база данных TradeDev, то все изменения, внесенные в объекты (заданные как скрипты) в проекте вне сети TradeDev, будут распространены на действующую базу данных TradeDev.

    Если имеется разрешение на внесение каких-либо изменений в базу данных, в которой должен быть опубликован проект, нажмите кнопку Опубликовать. А при отсутствии разрешения на запись в производственной базе данных можно нажать кнопку Создать скрипт, чтобы сформировать скрипт публикации Transact-SQL, который затем может быть передан администратору базы данных. После этого администратор базы данных может запустить скрипт, чтобы внести обновления на рабочем сервере для синхронизации его схемы с проектом базы данных.

  5. В окне Операции Data Tools отображается ход выполнения операций публикации и выводятся уведомления об ошибках. В этом новом окне также возможен предварительный просмотр развертывания, созданного скрипта или полных результатов публикации.

  6. Можно также сохранить параметры публикации в профиле, чтобы иметь возможность повторно использовать те же параметры при последующем выполнении операций публикации. Для этого нажмите кнопку Сохранить профиль как в диалоговом окне Опубликовать базу данных. В будущем можно будет нажать кнопку Загрузить профиль, когда снова потребуется загрузить существующие параметры.

  7. Обратите внимание на сообщения в окне Операции Data Tools. Щелкните ссылку «Предварительный просмотр» справа от текста Создается предварительный просмотр публикации, чтобы открыть отчет с предварительным просмотром развертывания. Если целевая платформа проекта не совпадает с сервером базы данных, на котором публикуется проект, то SSDT включает в отчет предупреждение. Например, если целевой платформой проекта является Microsoft SQL Server 2012 и предпринята попытка опубликовать проект в экземпляре сервера SQL Server 2008 R2, то в окне Вывод появится следующее предупреждение:

    В проекте, в котором Microsoft SQL Server 2012 указан в качестве целевой платформы, могут обнаружиться проблемы совместимости с SQL Server 2008

    Если такой проект содержит сущности (например, объект последовательности), которые появились только в Microsoft SQL Server 2012, то публикация завершится ошибкой.

    Развертывание завершится с ошибками, если предикаты объекта используют функцию CONTAINS или FREETEXT с вновь созданным полнотекстовым индексом, а также если используются транзакционные скрипты. Если параметр включения скриптов транзакций включен во время развертывания, то процедуры и представления определяются внутри транзакции, тогда как полнотекстовый индекс определяется за пределами транзакции в конце скрипта развертывания. В результате такого упорядочения в скрипте процедуры или представления, использующие функции CONTAINS или FREETEXT, не будут сопоставлены с полнотекстовым индексом, что приведет к ошибке развертывания.