Compatibilidad de DAC con las versiones y objetos de SQL Server

Una aplicación de capa de datos (DAC) admite los objetos Motor de base de datos más comúnmente utilizados.

En este tema

  • Objetos de SQL Server admitidos

  • Compatibilidad de aplicaciones de la capa de datos con versiones de SQL Server

  • Limitaciones de la implementación de datos

  • Consideraciones adicionales para las acciones de implementación

Objetos de SQL Server admitidos

Solo los objetos admitidos se pueden especificar en una aplicación de capa de datos cuando se está creando o modificando. No se puede extraer, registrar o importar una DAC de una base de datos existente que contenga objetos que no se admitan en una DAC. SQL Server 2012 admite los siguientes objetos en una DAC.

ROL DE BASE DE DATOS

FUNCIÓN: insertada con valores de tabla

FUNCIÓN: con valores de tabla de múltiples instrucciones

FUNCIÓN: escalar

ÍNDICE: clúster

ÍNDICE: no clúster

INDEX: espacial

ÍNDICE: único

LOGIN

Permisos

Pertenencias al rol

SCHEMA

Estadísticas

PROCEDIMIENTO ALMACENADO: Transact-SQL

Sinónimos

TABLA: restricción CHECK

TABLA: intercalación

TABLA: columna, incluidas las columnas calculadas

TABLA: restricción, predeterminada

TABLA: restricción, clave externa

TABLA: restricción, índice

TABLA: restricción, clave principal

TABLA: restricción, única

DESENCADENADOR: DML

TIPO: HIERARCHYID, GEOMETRY, GEOGRAPHY

TIPO: tipo de datos definido por el usuario

TIPO: tipo de tabla definida por el usuario

USER

VIEW

Compatibilidad de aplicaciones de la capa de datos con versiones de SQL Server

Las versiones de SQL Server tienen niveles diferentes de compatibilidad con las operaciones DAC. Todas las operaciones DAC admitidas por una versión de SQL Server son admitidas por todas las ediciones de esa versión.

Las instancias del Motor de base de datos admiten las siguientes operaciones DAC:

  • La exportación y la extracción se admiten en todas las versiones compatibles de SQL Server.

  • Todas las operaciones se admiten en Windows Azure SQL Database y en todas las versiones de SQL Server 2012 y SQL Server 2008 R2.

  • Todas las operaciones se admiten en SQL Server 2008 Service Pack 2 (SP2) o posterior y en SQL Server 2005 SP4 o posterior.

DAC Framework consta de las herramientas del lado cliente para compilar y procesar los paquetes DAC y los archivos de exportación. Los productos siguientes incluyen DAC Framework

  • SQL Server 2012 incluye DAC Framework 3.0, que admite todas las operaciones DAC.

  • SQL Server 2008 R2 SP1 y Visual Studio 2010 SP1 incluían DAC Framework 1.1, que admite todas las operaciones DAC excepto la exportación y la importación.

  • SQL Server 2008 R2 y Visual Studio 2010 incluían DAC Framework 1.0, que admite todas las operaciones DAC excepto la exportación, la importación, y la actualización en contexto.

  • Las herramientas cliente de versiones anteriores de SQL Server o de Visual Studio no admiten las operaciones DAC.

Un paquete DAC o un archivo de exportación compilado con una versión de DAC Framework no se puede procesar con una versión anterior de DAC. Por ejemplo, un paquete DAC extraído mediante las herramientas cliente SQL Server 2012 no se puede implementar usando las herramientas cliente SQL Server 2008 R2.

Un paquete DAC o un archivo de exportación compilado con una versión de DAC Framework se puede procesar con una versión posterior de DAC. Por ejemplo, un paquete DAC extraído mediante las herramientas cliente de SQL Server 2008 R2 se puede implementar con SQL Server 2008 R2 SP1 o con las herramientas cliente de SQL Server 2012.

Limitaciones de la implementación de datos

Tenga en cuenta estas limitaciones de fidelidad en el motor de implementación de datos de DAC Framework en SQL Server 2012 PCU1. Las limitaciones se aplican a las siguientes acciones de DAC Framework: implementar o publicar un archivo .dacpac e importar un archivo .bacpac.

  1. Pérdida de metadatos para determinadas condiciones y tipos base dentro de las columnas sql_variant. En los casos afectados, verá una advertencia con el siguiente mensaje: Determinadas propiedades de determinados tipos de datos utilizados dentro de una columna sql_variant no se conservan al implementarlos DAC Framework.

    • Tipos base MONEY, SMALLMONEY, NUMERIC, DECIMAL: no se conserva la precisión.

      • Tipos base DECIMAL/NUMERIC con precisión 38: los metadatos “TotalBytes” de sql_variant siempre se establecen en 21.
    • Todos los tipos base de texto: la intercalación predeterminada de base de datos se aplica a todo el texto.

    • Tipos base BINARY: no se conserva la propiedad de longitud máxima.

    • Tipos base TIME, DATETIMEOFFSET: la precisión siempre se establece en 7.

  2. Pérdida de datos dentro de las columnas sql_variant. En el caso afectado, verá una advertencia con el siguiente mensaje: Se perderán datos cuando DAC Framework implemente un valor de la columna ql_variant DATETIME2 con una escala superior a 3. El valor DATETIME2 está limitado a una escala igual a 3 durante la implementación.

    • Tipo base DATETIME2 con una escala superior a 3: la escala está limitada o es igual a 3.
  3. La operación de implementación genera un error para las siguientes condiciones dentro de las columnas sql_variant. En los casos afectados, verá un cuadro de diálogo con el siguiente mensaje: Error en la operación debido a limitaciones de datos en DAC Framework.

    • Tipos base DATETIME2, SMALLDATETIME y DATE: si el valor está fuera del rango DATETIME; por ejemplo, el año es menor que 1753.

    • Tipo base DECIMAL, NUMERIC: cuando la precisión del valor es mayor que 28.

Consideraciones adicionales para las acciones de implementación

Tenga en cuenta las siguientes consideraciones para las acciones de implementación de datos de DAC Framework:

  • Extraer/exportar: en acciones que utilizan DAC Framework para crear un paquete desde una base de datos; por ejemplo, extraer un archivo .dacpac, exportar un archivo .bacpac, estas limitaciones no se aplican. Los datos del paquete son una representación de plena fidelidad de los datos de la base de datos de origen. Si cualquiera de estas condiciones está presente en el paquete, el registro de extracción o exportación contendrá un resumen de los problemas a través de los mensajes mencionados anteriormente. Esto es para advertir al usuario de los problemas de implementación de datos potenciales con el paquete creado. El usuario también verá el siguiente mensaje de resumen en el registro: Estas limitaciones no afectan a la fidelidad de los tipos y valores de datos almacenados en el paquete DAC creado por DAC Framework; solo se aplican a los tipos y valores de datos resultantes de implementar un paquete DAC en una base de datos. Para obtener más información acerca de los datos afectados y cómo evitar esta limitación, vea este tema.

  • Implementar/publicar/importar: en acciones que usan DAC Framework para implementar un paquete en una base de datos, como en implementar o publicar un archivo .dacpac e importar un archivo .bacpac, se aplican estas limitaciones. Es posible que los datos resultantes en la base de datos de destino no contengan una representación de plena fidelidad de los datos en el paquete. El registro de implementación/importación contendrá un mensaje, mostrado anteriormente, para cada instancia en la que se detecte el problema. Los errores bloquearán la operación, vea la categoría 3 más arriba, pero esta seguirá con el resto de advertencias.

    Para obtener más información acerca de los datos afectados en este escenario y cómo evitar esta limitación para acciones de implementación, publicación e importación, veaeste tema.

  • Soluciones alternativas: las operaciones de extracción y exportación escribirán archivos de datos BCP de plena fidelidad en archivos .dacpac o .bacpac. Para evitar limitaciones, use la utilidad de línea de comandos SQL Server BCP.exe para implementar datos de plena fidelidad en una base de datos de destino desde un paquete DAC.

Vea también

Conceptos

Aplicaciones de capa de datos