Partager via


Prise en charge DAC pour les objets et versions SQL Server

Une application de la couche Données (DAC) prend en charge les objets moteur de base de données les plus couramment utilisés.

Dans cette rubrique

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 2014 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
Connexion Autorisations
Appartenances aux rôles SCHEMA
Statistiques PROCÉDURE STOCKÉE : 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 Utilisateur
VIEW

Prise en charge de l'application de la couche Données par les versions de SQL Server

Les versions de SQL Server ont différents niveaux de prise en charge des 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 sur toutes les versions prises en charge de SQL Server.

  • Toutes les opérations sont prises en charge sur Azure SQL Database et toutes les versions de SQL Server 2014, SQL Server 2012 et SQL Server 2008 R2.

  • Toutes les opérations sont prises en charge sur SQL Server 2008 Service Pack 2 (SP2) ou version ultérieure, et 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 2014 et SQL Server 2012 incluent DAC Framework 3.0, qui prend en charge toutes les opérations DAC.

  • SQL Server 2008 R2 SP1 et Visual Studio 2010 SP1 ont inclus DAC Framework 1.1, qui prend en charge toutes les opérations DAC à l’exception de l’exportation et de l’importation.

  • SQL Server 2008 R2 et Visual Studio 2010 ont inclus DAC Framework 1.0, qui prend en charge toutes les opérations DAC, à l’exception de l’exportation, de l’importation et de la 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 SQL Server 2014 ne peut pas être déployé à l’aide des outils clients 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 SQL Server 2008 R2 peut être déployé à l’aide des outils clients SQL Server 2008 R2 SP1 ou ultérieurs.

Limitations lors du déploiement de données

Notez les limitations de fidélité dans le moteur de déploiement de données du DAC Framework dans SQL Server 2012 SP1. Les limitations s'appliquent aux actions suivantes du DAC Framework : déployer ou publier un fichier .dacpac, et importer un fichier .bacpac.

  1. La perte des métadonnées de certaines conditions et types de base dans les colonnes sql_variant. Dans les cas concernés, un avertissement s’affiche avec le message suivant : 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 DAC Framework.

    • TYPES DE BASE MONEY, SMALLMONEY, NUMERIC et DECIMAL : la précision n’est pas conservée.

      • Types de base DECIMAL/NUMERIC avec précision 38 : les métadonnées « TotalBytes » sql_variant sont toujours définies sur 21.
    • Tous les types de base de texte : le classement par défaut de la base de données est appliqué à l’ensemble du texte.

    • Types de base BINARY : la propriété de longueur maximale n’est pas conservée.

    • TIME, DATETIMEOFFSET Types de base : la précision est toujours définie sur 7.

  2. Perte de données dans les colonnes sql_variant. Dans le cas concerné, un avertissement s’affiche avec le message suivant : Il y aura perte de données lorsqu’une valeur dans une colonne DATETIME2 sql_variant avec une échelle supérieure à 3 est déployée par 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 est limitée à 3.
  3. L'opération de déploiement échoue dans les cas suivants dans les colonnes sql_variant. Dans les cas concernés, vous verrez une boîte de dialogue avec le message suivant : L’opération a échoué en raison de limitations de données dans DAC Framework.

    • Types de base DATETIME2, SMALLDATETIME et DATE : si la valeur est en dehors de la plage DATETIME, par exemple, l’année est inférieure à 1753.

    • DECIMAL, type de base NUMERIC : lorsque la précision de la valeur est supérieure à 28.

Considérations supplémentaires concernant les actions de déploiement

Notez les points suivants pour les actions de déploiement de données DAC Framework :

  • Extraire/exporter : sur les actions qui utilisent DAC Framework pour créer un package à partir d’une base de données (par exemple, extraire un fichier .dacpac, exporter un fichier .bacpac) - ces limitations ne s’appliquent pas. Les données du package sont une représentation haute fidélité des données dans la base de données source. Si l'une de ces conditions est présente dans le package, le journal d'extraction/exportation contient un résumé des problèmes au moyen des messages indiqués ci-dessus. Permet d'avertir l'utilisateur des problèmes potentiels de déploiement de données avec le package qu'ils ont créé. L’utilisateur verra également le message récapitulatif suivant dans le journal : Ces limitations n’affectent pas la fidélité des types de données et des valeurs stockés dans le package DAC créé par DAC Framework ; elles s’appliquent uniquement aux types de données et aux valeurs résultant du déploiement d’un package DAC sur une base de données. Pour plus d’informations sur les données affectées et sur la façon de contourner cette limitation, consultezcette rubrique.

  • Déploiement/publication/importation : pour les actions qui utilisent le DAC Framework dans le but de déployer un package dans une base de données, par exemple pour déployer ou publier un fichier .dacpac et importer un fichier .bacpac, ces limitations s’appliquent. Les données qui donnent la base de données cible ne doivent pas contenir une représentation haute fidélité des données du package. Le journal de déploiement/importation contient un message, indiqué ci-dessus, pour chaque instance dans laquelle le problème est rencontré. L’opération est bloquée par les erreurs (consultez la catégorie 3 ci-dessus), mais se poursuit avec les autres avertissements.

    Pour plus d’informations sur les données affectées dans ce scénario et la façon 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’exportation écrivent des fichiers de données BCP de fidélité totale dans les fichiers .dacpac ou .bacpac. Pour éviter les limitations, utilisez l'utilitaire en ligne de commande SQL Server BCP.exe pour déployer des données haute fidélité dans une base de données cible d'un package DAC.

Voir aussi

Applications de la couche Données