Поддержка приложений уровня данных для объектов и версий SQL Server

Приложение уровня данных (DAC) поддерживает самые распространенные объекты компонента Компонент Database Engine.

В этом разделе

  • Поддерживаемые объекты SQL Server

  • Поддержка приложений уровня данных в различных версиях SQL Server

  • Ограничения развертывания данных

  • Дополнительные вопросы в отношении развертывания данных

Поддерживаемые объекты SQL Server

В приложении уровня данных можно создавать и изменять только поддерживаемые объекты. Невозможно извлечь, зарегистрировать или импортировать приложение уровня данных из существующей базы данных, которая содержит объекты, неподдерживаемые в приложении. SQL Server 2012 поддерживает следующие объекты в приложении уровня данных.

DATABASE ROLE

ФУНКЦИЯ: возвращающая табличное значение

ФУНКЦИЯ: возвращающая табличное значение, включающая несколько инструкций

ФУКЦИЯ: скалярная

ИНДЕКС: кластеризованный

ИНДЕКС: некластеризованный

ИНДЕКС: пространственный

ИНДЕКС: уникальный

LOGIN

Разрешения

Данные членства в роли

SCHEMA

Статистические данные

ХРАНИМАЯ ПРОЦЕДУРА: Transact-SQL

Синонимы

ТАБЛИЦА: ограничение CHECK

ТАБЛИЦА: параметры сортировки

ТАБЛИЦА: столбец, включая вычисляемые столбцы

ТАБЛИЦА: ограничение, значение по умолчанию

ТАБЛИЦА: ограничение, внешний ключ

ТАБЛИЦА: ограничение, индекс

ТАБЛИЦА: ограничение, первичный ключ

ТАБЛИЦА: ограничение, уникальное

ТРИГГЕР: DML

ТИП: HIERARCHYID, GEOMETRY, GEOGRAPHY

ТИП: определяемый пользователем тип данных

ТИП: определяемый пользователем табличный тип

USER

VIEW

Поддержка приложений уровня данных в различных версиях SQL Server

В различных версиях SQL Server реализованы разные уровни поддержки операций приложений уровня данных. Все операции приложения уровня данных, поддерживаемые определенной версией SQL Server, поддерживаются во всех выпусках данной версии.

Экземпляры компонента Компонент Database Engine поддерживают следующие операции приложения уровня данных:

  • Экспорт и извлечение поддерживаются во всех поддерживаемых версиях SQL Server.

  • Все операции поддерживаются в База данных SQL Windows Azure, а также во всех версиях SQL Server 2012 и SQL Server 2008 R2.

  • Все операции поддерживаются в SQL Server 2008 с пакетом обновления 2 (SP2) или более поздней версии и в SQL Server 2005 с пакетом обновления 4 (SP4) или более поздней версии.

Платформа DAC Framework включает клиентские средства для создания и обработки пакетов приложений уровня данных и файлов экспорта. Платформа DAC Framework включена в следующие продукты

  • SQL Server 2012 включает платформу DAC Framework 3.0, которая поддерживает все операции приложения уровня данных.

  • SQL Server 2008 R2 с пакетом обновления 1 (SP1) и Visual Studio 2010 с пакетом обновления 1 (SP1) включают платформу DAC Framework 1.1, которая поддерживает все операции приложения уровня данных, кроме экспорта и импорта.

  • SQL Server 2008 R2 и Visual Studio 2010 включают платформу DAC Framework 1.0, которая поддерживает все операции приложения уровня данных, кроме экспорта, импорта и обновления на месте.

  • Клиентские средства из более ранних версий SQL Server или Visual Studio не поддерживают операции приложения уровня данных.

Пакет приложения уровня данных или файл экспорта, созданный в одной версии DAC Framework, не может обрабатываться в более ранней версии DAC Framework. Например, пакет приложения уровня данных, извлеченный с помощью клиентских средств SQL Server 2012, не может быть развернут клиентскими средствами SQL Server 2008 R2.

Пакет приложения уровня данных или файл экспорта, созданный в какой-то версии DAC Framework, может обрабатываться в любой более поздней версии DAC Framework. Например, пакет приложения уровня данных, извлеченный с помощью клиентских средств SQL Server 2008 R2, может быть развернут с помощью клиентских средств SQL Server 2008 R2 с пакетом обновления 1 (SP1) или SQL Server 2012.

Ограничения развертывания данных

Обратите внимание на эти ограничения достоверности, имеющиеся в подсистеме развертывания данных DAC Framework из SQL Server 2012 PCU1. Эти ограничения относятся к следующим действиям платформы DAC Framework: развертывание или публикация DACPAC-файла и импорт BACPAC-файла.

  1. Потеря метаданных в определенных условиях и при определенных базовых типах в столбце sql_variant. В таких случаях на экране появляется следующее сообщение с предупреждением: Некоторые свойства определенных типов данных, используемых в столбце sql_variant, не сохраняются при развертывании с помощью платформы DAC Framework.

    • Базовые типы MONEY, SMALLMONEY, NUMERIC, DECIMAL: точность не сохраняется.

      • Базовые типы DECIMAL/NUMERIC с точностью 38: метаданным «TotalBytes» sql_variant всегда задается значение 21.
    • Все текстовые базовые типы: параметры сортировки базы данных по умолчанию применяются ко всему тексту.

    • Базовый тип данных BINARY: свойство максимальной длины не сохраняется.

    • Базовые типы данных TIME, DATETIMEOFFSET: точности всегда задается значение 7.

  2. Потеря данных в столбце sql_variant. В таких случаях на экране появляется следующее сообщение с предупреждением: При развертывании значения из столбца sql_variant DATETIME2 с масштабом больше 3 с помощью платформы DAC Framework произойдет потеря данных. Во время развертывания значение DATETIME2 ограничивается масштабом, равным 3.

    • Базовый тип DATETIME2 с масштабом более 3: масштаб ограничивается значением 3.
  3. Операция развертывания завершается ошибкой при наличии в столбце sql_variant следующих условий. В таких случаях на экране появляется следующее диалоговое окно с предупреждением: Операция завершилась ошибкой из-за ограничения данных в платформе DAC Framework.

    • Базовые типы DATETIME2, SMALLDATETIME и DATE: если значение выходит за пределы диапазона DATETIME, например значение года меньше 1753.

    • Базовый тип DECIMAL, NUMERIC: когда точность значения выше 28.

Дополнительные вопросы в отношении развертывания данных

Обратите внимание на следующие соображения в отношении действий по развертыванию данных платформы DAC Framework.

  • Извлечение, экспорт — эти ограничения не распространяются на действия, которые используют платформу DAC Framework для создания пакета из базы данных, например извлечение DACPAC-файла или экспорт BACPAC-файла. Данные из пакета являются полностью достоверным представлением данных из базы данных-источника. При наличии в пакете любого из этих условий в журнале извлечения или экспорта будет приведена сводка проблем посредством приведенных выше сообщений. Она предназначена для того, чтобы предупредить пользователя о потенциальных проблемах с развертыванием данных с помощью созданного пакета. Пользователь также будет видеть в журнале следующее сводное сообщение: Эти ограничения не влияют на достоверность типов данных и значений, хранящихся в пакете приложения уровня данных, который был создан с помощью платформы DAC Framework. Они касаются только типов данных и значений, которые формируются при развертывании пакета приложения уровня данных в базе данных. Дополнительные сведения о затрагиваемых этими ограничениями данных, а также том, как их обходить, см. в этом разделе.

  • Развертывание, публикация, импорт — эти ограничения распространяются на действия, которые используют платформу DAC Framework для развертывания пакета в базу данных, например развертывание или публикация DACPAC-файла и импорт BACPAC-файла. Данные, которые появятся в целевой базе данных, могут не быть полностью достоверным представлением данных из пакета. Журнал развертывания или импорта будет содержать сообщение, приведенное выше, по каждому случаю возникновения этой проблемы. Операция блокируется при обнаружении ошибок (см. категорию 3 выше), но продолжается, если появляются только предупреждения.

    Сведения о данных, которые затрагивает эта ситуация, а также о том, как можно обойти это ограничение при выполнении действия развертывания или импорта, см. в этом разделе.

  • Решения — операции извлечения и экспорта позволяют записать полностью достоверные файлы данных BCP в DACPAC- или BACPAC-файлы. Чтобы избежать описанных здесь ограничений, используйте программу командной строки SQL Server BCP.exe для развертывания полностью достоверных данных в целевой базе данных из пакета приложения уровня данных.

См. также

Основные понятия

Приложения уровня данных