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

В качестве целевой версии 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).

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

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

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

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

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

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

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

    SSDT автоматически проверяет скрипт с учетом целевой платформы. В этом случае файловая группа не поддерживается в SQL Azure, SSDT возвращает ошибку. Список неподдерживаемых инструкций 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, который затем можно передать в DBA. После этого администратор базы данных может запустить скрипт, чтобы внести обновления на рабочем сервере для синхронизации его схемы с проектом базы данных.

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

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

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

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

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