Suporte de DAC para objetos e versões do SQL Server

Um aplicativo da camada de dados (DAC) oferece suporte aos objetos do Mecanismo de Banco de Dados mais usados.

Neste tópico

  • Objetos do SQL Server com suporte

  • Suporte das versões do SQL Server a aplicativos da camada de dados

  • Limitações da implantação de dados

  • Considerações adicionais para as ações de implantação

Objetos do SQL Server com suporte

Somente objetos com suporte podem ser especificados em um aplicativo da camada de dados enquanto ele é criado ou editado. Você não pode extrair, registrar ou importar um DAC de um banco de dados existente o qual contenha objetos sem suporte em um DAC. O SQL Server 2012 oferece suporte aos objetos abaixo em um DAC.

DATABASE ROLE

FUNCTION: com valor de tabela embutido

FUNCTION: com valor de tabela de várias instruções

FUNCTION: escalar

INDEX: clusterizado

INDEX: não clusterizado

INDEX: espacial

INDEX: exclusivo

LOGIN

Permissões

Associações de função

SCHEMA

Estatísticas

STORED PROCEDURE: Transact-SQL

Sinônimos

TABLE: restrição de verificação

TABLE: agrupamento

TABLE: coluna, incluindo colunas computadas

TABLE: restrição, padrão

TABLE: restrição, chave estrangeira

TABLE: restrição, índice

TABLE: restrição, chave primária

TABLE: restrição, exclusiva

TRIGGER: DML

TYPE: HIERARCHYID, GEOMETRY, GEOGRAPHY

TYPE: tipo de dados definido pelo usuário

TYPE: tipo de tabela definido pelo usuário

USER

VIEW

Suporte das versões do SQL Server a aplicativos da camada de dados

As versões do SQL Server têm níveis diferentes de suporte para operações do DAC. Todas as operações do DAC com suporte de uma versão do SQL Server têm suporte por todas as edições dessa versão.

As instâncias do Mecanismo de Banco de Dados oferecem suporte às seguintes operações do DAC:

  • Exportar e extrair têm suporte em todas as versões do SQL Server.

  • Todas as operações têm suporte no Banco de dados SQL do Windows Azure e em todas as versões do SQL Server 2012 e do SQL Server 2008 R2.

  • Todas as operações têm suporte no SQL Server 2008 Service Pack 2 (SP2) ou posterior e no SQL Server 2005 SP4 ou posterior.

A Estrutura de DAC inclui as ferramentas do lado do cliente para compilação e processamento de pacotes do DAC e arquivos de exportação. Os produtos a seguir incluem a Estrutura de DAC

  • O SQL Server 2012 inclui a Estrutura de DAC 3.0, com suporte a todas as operações do DAC.

  • O SQL Server 2008 R2 SP1 e o Visual Studio 2010 SP1 incluíam a Estrutura DAC 1.1, que oferece suporte a todas as operações do DAC, exceto exportação e importação.

  • O SQL Server 2008 R2 e o Visual Studio 2010 incluíam a Estrutura de DAC 1.0, que oferece suporte a todas as operações do DAC, com exceção da exportação, importação e atualização no local.

  • As ferramentas de cliente de versões anteriores do SQL Server ou do Visual Studio não oferecem suporte a operações do DAC.

Um pacote de DAC ou arquivo de exportação criados com uma versão da Estrutura de DAC não podem ser processados por uma versão anterior da Estrutura de DAC. Por exemplo, um pacote do DAC extraído usando as ferramentas de cliente SQL Server 2012 que usa as ferramentas de cliente SQL Server 2008 R2 não pode ser implantado.

Um pacote de DAC ou arquivo de exportação criados com uma versão da Estrutura de DAC podem ser processados por uma versão posterior da Estrutura de DAC. Por exemplo, um pacote de DAC extraído usando as ferramentas de cliente do SQL Server 2008 R2 pode ser implantado com as ferramentas de cliente do SQL Server 2008 R2 SP1 ou SQL Server 2012.

Limitações da implantação de dados

Observe essas limitações de fidelidade no mecanismo de implantação de dados da Estrutura DAC, no SQL Server 2012 PCU1. As limitações aplicam-se às ações a seguir da Estrutura DAC: implantar ou publicar um arquivo .dacpac e importar um arquivo .bacpac.

  1. Perda de metadados para certas condições e tipos base em colunas sql_variant. Nos casos afetados, você receberá um aviso com a seguinte mensagem: Algumas propriedades em alguns tipos de dados usados dentro de uma coluna sql_variant não são preservadas quando a implantação é feita pela Estrutura DAC.

    • Tipos base MONEY, SMALLMONEY, NUMERIC, DECIMAL: a precisão não é preservada.

      • Tipos base DECIMAL/NUMERIC com precisão 38: os metadados “TotalBytes” de sql_variant são sempre definidos como 21.
    • Todos os tipos base de texto: o agrupamento padrão do banco de dados é aplicado a todo o texto.

    • Tipos base BINARY: o tamanho máximo da propriedade não é preservado.

    • Os tipos base TIME, DATETIMEOFFSET: a precisão é sempre definida como 7.

  2. Perda de dados em colunas sql_variant. No caso afetado, você receberá um aviso com a mensagem a seguir: Haverá perda de dados quando um valor em uma coluna sql_variant DATETIME2 com escala maior que 3 for implantado pela Estrutura DAC. O valor DATETIME2 está limitado a uma escala igual a 3 durante a implantação.

    • Tipo base DATETIME2 com escala maior que 3: a escala é limitada para ser igual a 3.
  3. Há falha na operação de implantação para as seguintes condições nas colunas sql_variant. Nos casos afetados, você verá uma caixa de diálogo com a seguinte mensagem: Falha na operação devido às limitações de dados na Estrutura DAC.

    • Tipos base DATETIME2, SMALLDATETIME e DATE: se o valor estiver fora do intervalo de DATETIME, por exemplo, o ano é inferior a 1753.

    • Tipo base DECIMAL, NUMERIC: quando a precisão do valor é maior que 28.

Considerações adicionais para as ações de implantação

Observe as considerações abaixo para as ações de implantação de dados da Estrutura DAC:

  • Extrair/Exportar - nas ações que usam a Estrutura DAC para criar um pacote de um banco de dados – por exemplo, extrair um arquivo .dacpac, exportar um arquivo .bacpac – essas limitações não se aplicam. Os dados no pacote são uma representação com fidelidade total dos dados no banco de dados de origem. Se uma dessas condições estiver presente no pacote, o log de extração/exportação conterá um resumo dos problemas com as mensagens observadas acima. Esse procedimento avisa o usuário sobre prováveis problemas de implantação de dados com o pacote criado. O usuário também verá a mensagem de resumo a seguir no log: Essas limitações não afetam a fidelidade dos tipos de dados e valores armazenados no pacote DAC que tenha sido criado pela Estrutura DAC; elas se aplicam apenas aos tipos de dados e valores resultantes da implantação de um pacote DAC em um banco de dados. Para obter mais informações sobre que dados são afetados e como encontrar soluções alternativas para essa limitação, consulte este tópico.

  • Implantar/Publicar/Importar - em ações que usam a Estrutura DAC para implantar um pacote em um banco de dados, como implantar ou publicar um arquivo .dacpac, e importar um arquivo .bacpac, essas limitações se aplicam. Os dados resultantes no banco de dados de destino podem não conter uma representação com fidelidade total dos dados no pacote. O log de implantação/importação conterá uma mensagem, observada acima, para cada instância encontrada do problema. A operação será bloqueada por erros – consulte a categoria 3 acima - mas prosseguirá com outros avisos.

    Para obter mais informações sobre os dados que serão afetados nesse cenário e como encontrar soluções alternativas para essa limitação das ações de implantação/publicação/importação, consulte este tópico.

  • Soluções alternativas – as operações de extração e exportação gravarão arquivos de dados BCP com fidelidade total nos arquivos .dacpac ou .bacpac. Para evitar limitações, use o utilitário de linha de comando SQL Server BCP.exe para implantar dados com fidelidade total em um banco de dados de destino de um pacote de DAC.

Consulte também

Conceitos

Aplicativos da camada de dados