Prise en charge DAC pour les objets et versions SQL Server
Une application de la couche Données (DAC) prend en charge les objets du Moteur de base de données les plus couramment utilisés.
Dans cette rubrique
Objets SQL Server pris en charge
Prise en charge de l'application de la couche Données par les versions de SQL Server
Limitations de déploiement de données
Considérations supplémentaires pour les actions de déploiement
Objets SQL Server pris en charge
Seuls les objets pris en charge peuvent être spécifiés dans une application de la couche Données lors de sa création ou de sa modification. Vous n'êtes pas autorisé à extraire, inscrire ou importer une DAC à partir d'une base de données existante qui contient des objets qui ne sont pas pris en charge dans une DAC. SQL Server 2012 prend en charge les objets suivants dans une DAC.
DATABASE ROLE |
FUNCTION : table incluse |
FUNCTION : table à instructions multiples |
FUNCTION : scalaire |
INDEX : cluster |
INDEX : non-cluster |
INDEX : spatial |
INDEX : unique |
LOGIN |
Autorisations |
Appartenances aux rôles |
SCHEMA |
Statistiques |
STORED PROCEDURE : Transact-SQL |
Synonymes |
TABLE : contrainte de validation |
TABLE : classement |
TABLE : colonne, notamment les colonnes calculées |
TABLE : contrainte, par défaut |
TABLE : contrainte, clé étrangère |
TABLE : contrainte, index |
TABLE : contrainte, clé primaire |
TABLE : contrainte, unique |
TRIGGER : DML |
TYPE : HIERARCHYID, GEOMETRY, GEOGRAPHY |
TYPE : type de données défini par l'utilisateur |
TYPE : type de table défini par l'utilisateur |
USER |
VIEW |
Prise en charge de l'application de la couche Données par les versions de SQL Server
Les versions de SQL Server ont des niveaux de prise en charge différents selon les opérations DAC. Toutes les opérations DAC prises en charge par une version de SQL Server sont prises en charge par toutes les éditions de cette version.
Les instances du Moteur de base de données prennent en charge les opérations DAC suivantes :
L'exportation et l'extraction sont prises en charge dans toutes les versions de SQL Server prises en charge.
Toutes les opérations sont prises en charge dans Base de données SQL Windows Azure et dans toutes les versions de SQL Server 2012 et de SQL Server 2008 R2.
Toutes les opérations sont prises en charge dans SQL Server 2008 Service Pack 2 (SP2) ou version ultérieure et dans SQL Server 2005 SP4 ou version ultérieure.
Le DAC Framework comporte les outils côté client pour générer et traiter les packages et les fichiers d'exportation DAC. Le DAC Framework est inclus dans les produits suivants.
SQL Server 2012 inclut le DAC Framework 3.0, qui prend en charge toutes les opérations DAC.
SQL Server 2008 R2 SP1 et Visual Studio 2010 SP1 incluent le DAC Framework 1.1, qui prend en charge toutes les opérations DAC à l'exception des opérations d'exportation et d'importation.
SQL Server 2008 R2 et Visual Studio 2010 incluent le DAC Framework 1.0, qui prend en charge toutes les opérations DAC à l'exception des opérations d'exportation, d'importation et de mise à niveau sur place.
Les outils clients des versions antérieures de SQL Server ou Visual Studio ne prennent pas en charge les opérations DAC.
Un package DAC ou un fichier d'exportation créé avec une version de DAC Framework ne peut pas être traité par une version antérieure du DAC Framework. Par exemple, un package DAC extrait à l'aide des outils clients de SQL Server 2012 ne peut pas être déployé à l'aide des outils clients de SQL Server 2008 R2.
Un package DAC ou un fichier d'exportation créé avec une version de DAC Framework peut être traité par toute version ultérieure du DAC Framework. Par exemple, un package DAC extrait à l'aide des outils clients de SQL Server 2008 R2 peut être déployé à l'aide de SQL Server 2008 R2 SP1 ou des outils clients de SQL Server 2012.
Limitations de déploiement de données
Notez ces limitations de fidélité dans le moteur de déploiement de données DAC Framework de SQL Server 2012 PCU1. Elles s'appliquent aux actions DAC Framework suivantes : déploiement ou publication d'un fichier .dacpac et importation d'un fichier .bacpac.
Perte de métadonnées pour certains types de base et conditions dans les colonnes sql_variant. Dans les cas concernés, un avertissement contenant le message suivant s'affichera : Certaines propriétés sur certains types de données utilisés dans une colonne sql_variant ne sont pas conservées lorsqu'elles sont déployées par le DAC Framework.
Types de base MONEY, SMALLMONEY, NUMERIC, DECIMAL : la propriété Precision n'est pas conservée.
- Types de base DECIMAL/NUMERIC avec une précision de 38 : le type de métadonnées sql_variant « TotalBytes » a toujours la valeur 21.
Tous les types de base texte : le classement par défaut de la base de données est appliqué à tout le texte.
Types de base BINARY : la propriété Max length n'est pas conservée.
Types de base TIME, DATETIMEOFFSET : la propriété Precision a toujours la valeur 7.
Perte de données dans les colonnes sql_variant. Dans le cas concerné, un avertissement contenant le message suivant s'affichera : Il y aura une perte de données lorsqu'une valeur dans une colonne sql_variant DATETIME2 avec une échelle supérieure à 3 sera déployée par le DAC Framework. La valeur DATETIME2 est limitée à une échelle égale à 3 pendant le déploiement.
- Type de base DATETIME2 avec une échelle supérieure à 3 : l'échelle doit être au plus égale à 3.
L'opération de déploiement échoue pour les conditions suivantes dans des colonnes sql_variant. Dans les cas concernés, une boîte de dialogue contenant le message suivant s'affichera : Échec de l'opération dû aux limitations de données dans le DAC Framework.
Types de base DATETIME2, SMALLDATETIME et DATE : si la valeur se trouve hors de la plage DATETIIME, par exemple si l'année est antérieure à 1753.
Types de base DECIMAL, NUMERIC : lorsque la précision de la valeur est supérieure à 28.
Considérations supplémentaires pour les actions de déploiement
Notez les considérations suivantes pour les actions de déploiement de données DAC Framework :
Extraction/Exportation - Ces limitations ne s'appliquent pas aux actions qui utilisent le DAC Framework pour créer un package à partir d'une base de données, par exemple, extraire un fichier .dacpac, exporter un fichier .bacpac. Les données du package sont une représentation fidèle des données de la base de données source. Si l'une de ces conditions existe dans le package, le journal d'extraction/exportation contiendra un résumé des problèmes via les messages indiqués ci-dessus. L'utilisateur est ainsi informé des problèmes de déploiement potentiels avec le package qu'il a créé. Le message de synthèse suivant s'affichera également dans le journal : Ces limitations n'affectent pas la fidélité des types et valeurs de données stockés dans le package DAC créé par le DAC Framework ; elles ne s'appliquent qu'aux types et valeurs de données résultant du déploiement d'un package DAC dans une base de données. Pour plus d'informations sur les données affectées et les instructions permettant de contourner cette limitation, consultez cette rubrique.
Déploiement/Publication/Importation - Ces limitations ne s'appliquent pas aux actions qui utilisent le DAC Framework pour déployer un package dans une base de données, par exemple, déployer ou publier un fichier .dacpac et importer un fichier .bacpac. Les données obtenues dans la base de données cible ne seront peut-être pas une représentation fidèle des données du package. Le journal de déploiement/importation contiendra un message, indiqué ci-dessus, pour chaque instance avec laquelle le problème est rencontré. L'opération sera bloquée par des erreurs (voir la catégorie 3 ci-dessus), mais continuera avec les autres avertissements.
Pour plus d'informations sur les données affectées dans ce scénario et les instructions permettant de contourner cette limitation pour les actions de déploiement/publication/importation, consultez cette rubrique.
Solutions de contournement – Les opérations d'extraction et d'importation écriront des fichiers de données BCP fidèles dans les fichiers .dacpac ou .bacpac. Pour éviter les limitations, utilisez l'utilitaire en ligne de commande BCP.exe SQL Server pour déployer des données fidèles dans une base de données cible d'un package DAC.