Partager via


Prise en charge DAC pour les objets et versions SQL Server

Une application de 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 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 incluent 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érieur.

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 affectés, un avertissement avec le message suivant s’affiche : 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 précision n'est pas conservée.

      • Types de base de DECIMAL/NUMERIC avec une précision de 38 : les métadonnées sql_variant « TotalBytes » 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.

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

  2. Perte de données dans les colonnes sql_variant. Dans le cas affecté, un avertissement avec le message suivant s'affiche : Des données seront perdues si une valeur dans une colonne sql_variant DATETIME2 avec une échelle supérieure à 3 est 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 est limitée pour être égale à 3.
  3. L'opération de déploiement échoue dans les cas suivants dans les colonnes sql_variant. Dans les cas affectés, une boîte de dialogue contenant le message suivant s'affiche : L'opération a échoué en raison des limitations de données dans le DAC Framework.

    • Types de base DATETIME2, SMALLDATETIME et DATE : si la valeur se trouve hors de la plage DATETIME (par exemple, l’année est antérieure à 1753).

    • Type de base DECIMAL, 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 :

  • Extraction/exportation : pour les actions qui utilisent le DAC Framework dans le but de créer un package à partir d’une base de données (par exemple, extraire un fichier .dacpac, exporter un fichier .bacpac), ces restrictions 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 voit également le message résumé 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 le DAC Framework . Ils 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, consultez cette 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 les fichiers de données BCP haute fidélité 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