Compatibilidad de DAC con las versiones y objetos de SQL Server
Una aplicación de capa de datos (DAC) admite los objetos de Motor de base de datos más usados.
En este tema
Compatibilidad de aplicaciones de la capa de datos con versiones de SQL Server
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 2014 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 | INDEX: no agrupado |
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 diferentes niveles de compatibilidad con las operaciones DAC. Todas las operaciones de DAC compatibles con una versión de SQL Server son compatibles con todas las ediciones de esa versión.
Las instancias del Motor de base de datos admiten las siguientes operaciones DAC:
La exportación y extracción se admiten en todas las versiones compatibles de SQL Server.
Todas las operaciones se admiten en Azure SQL Database y en todas las versiones de SQL Server 2014, SQL Server 2012 y SQL Server 2008 R2.
Todas las operaciones se admiten en SQL Server 2008 Service Pack 2 (SP2) o posterior, y 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 2014 y SQL Server 2012 incluyen 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 de DAC excepto la exportación e importación.
SQL Server 2008 R2 y Visual Studio 2010 incluían DAC Framework 1.0, que admite todas las operaciones de DAC excepto la exportación, importación y actualización local.
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 de cliente de SQL Server 2014 no se puede implementar mediante las herramientas de cliente de 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, se puede implementar un paquete DAC extraído mediante las herramientas de cliente de SQL Server 2008 R2 mediante las herramientas de cliente de SQL Server 2008 R2 SP1 o superior.
Limitaciones de la implementación de datos
Tenga en cuenta estas limitaciones en la fidelidad del motor de implementación de datos de DAC Framework en SQL Server 2012 SP1. Las limitaciones se aplican a las siguientes acciones de DAC Framework: implementar o publicar un archivo .dacpac e importar un archivo .bacpac.
Pérdida de metadatos para ciertas condiciones y tipos base en columnas sql_variant. En los casos correspondientes, aparecerá 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 y DECIMAL: no se mantiene la precisión.
- Tipos base DECIMAL/NUMERIC con precisión 38: los metadatos de sql_variant de "TotalBytes" siempre se establecen en 21.
Todos los tipos base de texto: la intercalación predeterminada de la base de datos se aplica a todo el texto.
Tipos base BINARY: no se mantiene la propiedad longitud máxima.
Tipos base TIME y DATETIMEOFFSET: la precisión se establece siempre en 7.
Pérdida de datos en las columnas sql_variant. En el caso correspondiente, aparecerá una advertencia con el siguiente mensaje: Se perderán datos cuando DAC Framework implemente un valor en una columna sql_variant DATETIME2 con una escala mayor que 3. Durante la implementación, el valor DATETIME2 está limitado a una escala igual a 3.
- Tipo base DATETIME2 con una escala mayor que 3: el límite de la escala es 3.
La operación de implementación no se realiza correctamente para las condiciones en las columnas sql_variant. En los casos correspondientes, aparecerá un cuadro de diálogo con el siguiente mensaje: La operación no se realizó correctamente debido a limitaciones de datos en DAC Framework.
Tipos base DATETIME2, SMALLDATETIME y DATE: si el valor no está comprendido en el intervalo de 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 en acciones de implementación de datos de DAC Framework:
Extraer, exportar: estas limitaciones no se aplican en acciones que usan DAC Framework para crear un paquete a partir de una base de datos como, por ejemplo, extraer un archivo .dacpac o exportar un archivo .bacpac. Los datos del paquete son una representación totalmente exacta de los datos en la base de datos de origen. Si el paquete incorpora alguna de estas condiciones, el registro de extracciones y exportaciones incluirá un resumen de los problemas que se enviaron en los mensajes indicados anteriormente. Con esto, se pretende advertir a los usuario de los potenciales problemas en la implementación de datos con el paquete que han creado. El usuario también verá el siguiente mensaje de resumen en el registro: estas limitaciones no afectan a la fidelidad de los tipos de datos y los valores almacenados en el paquete DAC creado por DAC Framework; solo se aplican a los tipos de datos y valores resultantes de la implementación de un paquete DAC en una base de datos. Para obtener más información sobre los datos afectados y cómo solucionar esta limitación, consulte este tema.
Implementar, publicar, importar: estas limitaciones se aplican en acciones que usan DAC Framework para implementar un paquete en una base de datos como, por ejemplo, implementar o publicar un archivo .dacpac e importar un archivo .bacpac. Es posible que los datos que se obtienen en la base de datos de destino no contengan una representación totalmente exacta de los datos del paquete. El registro de implementaciones e importaciones contendrá un mensaje (arriba indicado) para cada instancia donde se produzca el problema. Si hay errores, estos bloquearán la operación (vea la categoría 3 anterior), pero seguirá con las otras advertencias.
Para obtener más información sobre los datos que se ven afectados en esta situación y cómo evitar esta limitación para implementar, publicar e importar acciones, vea este tema.
Soluciones alternativas: las operaciones de extracción y exportación escribirán archivos de datos BCP totalmente exactos en los archivos .dacpac o .bacpac. Para evitar limitaciones, utilice la utilidad de línea de comandos SQL Server BCP.exe con el fin de implementar datos totalmente exactos en una base de datos de destino a partir de un paquete DAC.