SQLShack

Cet article explore la configuration du classement de base de données Azure SQL et comment la modifier lors de l’importation de la base de données à partir d’un fichier BACPAC.

Introduction

Le classement fait référence à une configuration qui détermine le comportement du moteur de base de données pour un jeu de données de caractères au niveau d’un serveur, d’une base de données ou d’une colonne. SQL Server propose une large gamme de classements pour gérer les différences de langage dans différentes parties du monde. Il fournit des règles de tri, une sensibilité à la casse pour les types de données Unicode (nchar, nvarchar ou ntext) et non Unicode (char, varchar, nvarchar).

SQL Server prend en charge les classements suivants.

  • Windows
  • Binaire : Le classement binaire se termine toujours par _BIN ou _BIN2
  • SQL Server : Ces noms de classement commencent toujours par SQL_

Pour un serveur SQL traditionnel (sur site), les paramètres régionaux du système d’exploitation déterminent le classement par défaut. Cependant, vous pouvez modifier le classement au niveau du serveur lors de l’installation de SQL Server ou de la modification des paramètres régionaux du système d’exploitation. Le classement SQL Server par défaut est SQL_Latin1_General_CP1_CI_AS. Vous pouvez comprendre ces classements en détail en vous référant au Classement et au support Unicode.

Exigences

Cet article suppose que vous avez une compréhension de base des bases de données SQL Azure. Si vous êtes débutant, vous pouvez vous référer aux articles existants SQL Azure sur SQLShack. Vous pouvez utiliser le crédit gratuit Microsoft Azure en vous inscrivant à l’URL https://azure.microsoft.com/en-us/free/

Collation de base de données Azure SQL

Azure SQL DB est une offre PaaS gérée pour SQL Server avec certaines restrictions et limitations pour l’exécution de tâches spécifiques. Comme SQL Server sur site, Azure DB prend également en charge divers classements. Pour obtenir une liste des classements pris en charge pour Azure SQL DB, nous pouvons interroger le système.fonction fn_helpcollations(). Il renvoie une liste de 5 508 classements. La figure ci-dessous vous donne un aperçu du classement et des descriptions.

 Liste de classement prise en charge

 Liste de classement prise en charge

Pour Azure SQL DB, vous pouvez choisir Classement de base de données dans l’onglet Paramètres supplémentaires de création de base de données SQL. Comme indiqué ci-dessous, le classement par défaut apparaît sous la forme SQL_Latin1_General_CP1_CI_AS.

Nous pouvons décomposer ce classement pour le comprendre.

  • SQL – Il s’agit d’un classement SQL Server
  • Latin1_General – Cette partie définit la règle de tri des caractères
  • CI – Il fait référence à l’insensibilité à la casse
  • AS – Il définit la sensibilité à l’accent

 Spécifier le classement lors de la création de la base de données

 Spécifiez le classement lors de la création de la base de données

Vous pouvez cliquer sur Rechercher un classement et rechercher le classement spécifique que vous souhaitez configurer pour Azure DB.

Vous pouvez déployer une base de données Azure sur un serveur logique Azure existant. Par conséquent, si vous créez une nouvelle base de données Azure à l’aide de SSMS, vous pouvez définir un classement spécifique à l’aide de la page options.

 Vérifiez le classement dans SSMS

Si vous créez une base de données SQL Azure à l’aide de T-SQL, vous pouvez utiliser le mot clé COLLATE et spécifier le classement de base de données requis.

1
2
3

CRÉER UNE BASE DE DONNÉES MyDemoSQLDB
RASSEMBLER Latin1_General_100_CS_AS_SC;
ALLER

Vous devez créer la base de données dans le bon classement. Vos requêtes SQL peuvent ne pas fonctionner correctement en raison d’une inadéquation du classement. Cependant, si vous devez modifier après la création de la base de données SQL Azure, ce n’est pas simple. Azure SQL DB ne prend pas en charge la modification de l’assemblage à l’aide de l’ASSEMBLAGE de BASE DE DONNÉES ALTER. Vous obtenez le message d’erreur suivant si vous essayez de le modifier.

1
2
3
4

Utiliser master
aller
MODIFIER LA BASE DE DONNÉES Azuredemodatabase
RASSEMBLER SQL_Latin1_General_CP1250_CI_AS

 Modifier le classement à l'aide de la fonction COLLATE

  • Remarque : Ne modifiez pas ou ne définissez pas un classement spécifique tant que vous n’avez pas d’exigences spécifiques. Ne le faites jamais directement sur une base de données de production. Testez-le soigneusement sur un environnement de base de données inférieur, puis prévoyez de procéder au classement de production

Supposons que vous déployiez une base de données SQL Azure à partir du fichier BACPAC local. Vous souhaitez un classement différent dans la base de données cible.

  • Remarque: Je suppose que vous avez une base de données SQL Azure active. Sinon, vous pouvez utiliser un compte de niveau gratuit pour déployer votre base de données de test
  • Pour cette démo de l’article, nous effectuerons les tâches suivantes:

    • Exporter la base de données SQL Azure au format BACPAC
    • Installer Microsoft SQL Server Data-Tier Application Framework (18.1)
    • Modifier le modèle.configuration du fichier xml
    • Utilisez sqlpackage.exe pour déployer la base de données Azure avec le classement mis à jour
    • Vérifiez le classement de base de données

    Étape 1 : Exportez la base de données SQL Azure au format BACPAC

    Dans cette étape, nous exportons Azure SQL DB au format BACPAC. Nous pouvons vérifier que le classement existant est SQL_Latin1_General_CP1_CI_AS.

     Vérifiez le classement existant

    Pour l’exportation, cliquez avec le bouton droit sur la base de données Azure et choisissez Exporter l’application de niveau de données…

     Exporter la base de données SQL Azure au format BACPAC

     Exportez la base de données SQL Azure au format BACPAC

    Spécifiez le répertoire de la sauvegarde sur le disque local.

     Enregistrer sur le disque local

    Vérifier, exporter et surveiller la progression de l’application de niveau de données au format BACPAC.

     Voir l'état

     État de la vue

    Étape 2: Télécharger Microsoft SQL Server Data-Tier Application Framework (18.1)

    Vous devez télécharger et installer la dernière version de SSDT. Accédez à l’URL https://www.microsoft.com/en-us/download/details.aspx?id=57784 et cliquez sur Télécharger.

     Télécharger le cadre d'application de niveau de données Microsoft SQL Server

     Téléchargez Microsoft SQL Server Data-Tier Application Framework

    Sélectionnez la version de fichier MSI requise et téléchargez-la. C’est un fichier de package léger.

     Choisissez MSI

     Choisissez MSI

    Suivez l’assistant d’installation pour configurer le framework d’application de niveau de données Microsoft SQL Server.

     Progression de l'installation

     Progression de l'installation

     Message de progression de l'installation

     Message de progression de l'installation

     Installation terminée

     Installation terminée

    Étape 3: Renommez le. Fichier BACPAC à.ZIP

    Dans cette étape, nous renommons le fichier de package BACPAC exporté en un format ZIP. Pour ce faire, cliquez avec le bouton droit sur le BACPAC importé et changez l’extension en ZIP. Le type de fichier est compressé (compressé) après avoir changé l’extension, comme indiqué dans la figure ci-dessous.

     Renommez le.Fichier BACPAC à.ZIP

     Renommez le.Fichier BACPAC à.ZIP

    Veuillez cliquer avec le bouton droit sur le fichier compressé et l’extraire. Dans le dossier extrait, vous trouvez un modèle.xml, copiez le modèle.xml vers un autre répertoire tel que le C:\Temp dossier.

     Modèle, fichier xml

     Modèle, fichier xml

    Ouvrez le modèle.xml à partir de C:\Temp\Model .xml et modifier le classement de la base de données. La figure suivante montre les anciens et les nouveaux classements pour la base de données Azure SQL. Ici, nous utilisons le classement SQL avec une sensibilité à la casse.

     Modifier le classement dans le modèle.xml

     Modifier le classement dans le modèle.xml

    Étape 4 : Déployez la base de données Azure à l’aide de sqlpackage.exe

    Ici, accédez au répertoire C:\Program Fichiers \ Microsoft SQL Server \ 150\DAC\ bin dans l’invite de commande. Nous utilisons sqlpackage.exe pour importer le BACPAC avec le paramètre /ModelFilePath. Il remplace la configuration du fichier de modèle BACPAC par le fichier spécifique dans ce paramètre.

    Paramètres requis:

    • / tsn : Spécifiez le nom de domaine complet Azure SQL Server dans lequel nous voulons importer ce fichier BACPAC. Dans mon cas, c’est azuredemosqldemo.database.windows.net
    • /tdn : C’est le nouveau nom de base de données SQL Azure. Vous ne pouvez pas importer BACPAC sur une base de données existante
    • /tu : Spécifiez le nom d’utilisateur de l’administrateur pour vous connecter à Azure SQL Server et déployer la base de données
    • /tp: Entrez le mot de passe de l’utilisateur administrateur
    • /sf : Spécifiez l’emplacement du fichier BACPAC
    • /ModelFilePath: Entrez le modèle mis à jour.Chemin du fichier XML

    Plus tôt, nous avons changé l’extension du fichier BACPAC en ZIP. Nous devons le changer en BACPAC pour exécuter le sqlpackage.commande exe.

    Pour modifier le classement dans le BACPAC, exécutez la commande suivante dans une invite de commande.

    paquet sql.exe/Action : Importer /tsn:azuredemosqldemo.database.windows.net /tdn: azuredemodatabasenew/tu: sqladmin/tp: *******/sf:C:\Temp\azuredemodatabase.BACPAC/Chemin de fichier de modèle: C:\Temp\modèle.xml

    Vous obtenez un message d’avertissement:

    « Modèle de remplacement.xml utilisant le fichier ‘C:\Temp\model .xml’. L’utilisation de ce paramètre peut entraîner une défaillance du déploiement et/ou une perte de données involontaire. Ce paramètre a l’intention d’être utilisé uniquement lors du dépannage des problèmes de publication, d’importation ou de génération de script  »

    Il démarre l’importation de données, traite les tables et déploie la base de données dessus. Le temps de déploiement de la base de données dépend du nombre de tables, de la taille des données et des index.

     déployez la base de données à l'aide de sqlpackage.exe

    À la fin, vous obtenez la base de données importée avec succès.

     base de données importée réussie

    Étape 5: Vérification

    Maintenant, connectez-vous à la base de données Azure à l’aide de SSMS et vérifiez le classement de la base de données à l’aide du script suivant.

    1
    SÉLECTIONNEZ CONVERT(varchar(256), DATABASEPROPERTYEX(‘azuredemodatabasenew’, ‘classement’));

    Comme indiqué ci-dessous, la base de données nouvellement déployée utilise le classement SQL_Latin1_General_CP1_CS_AS.

     Vérifiez le classement dans la base de données SQL Azure déployée

    Maintenant, connectez-vous au portail Azure et affichez les propriétés de la base de données. Cette base de données a un niveau de tarification Gen5, 2vcores à usage général. Nous n’avons spécifié aucun niveau de tarification lors du déploiement de la base de données. Par conséquent, la base de données SQL Azure prend le niveau de tarification par défaut.

     Afficher les niveaux de prix

    Étape 6: Déployez la base de données Azure dans un niveau de tarification spécifique

    Supposons que nous souhaitions déployer une base de données avec un classement modifié et un niveau de tarification de base. Pour cette démo, nous changeons le classement de la base de données en Latin1_General_BIN. Par conséquent, ouvrez le modèle.xml et modifiez le classement comme indiqué précédemment.

     Remplacez le classement DB par Latin1_General_BIN.

    Cette fois, nous spécifions un nouveau paramètre (/p) pour définir l’édition de la base de données. Il demande à Azure de déployer la base de données sous le niveau de tarification spécifique.

    paquet sql.exe/Action: Import/tsn: azuredemosqldemo.base de données.windows.net /tdn:azuredemodatabasenew/tu:sqladmin/tp: *******/p:DatabaseEdition=Basic/sf:C:\Temp\azuredemodatabase.BACPAC/Chemin de fichier de modèle: C:\Temp\modèle.xml

     Deploy package

    Une fois la base de données déployée, vérifiez le classement de la base de données. Comme indiqué ci-dessous, il utilise le classement Latin1_General_BIN.

     Vérifier le classement DB

     Vérifier le classement DB

    Vous pouvez vous connecter au portail Azure et vérifier le niveau de tarification comme Basique.

     Vérifier le niveau de tarification

    • Note: Vous ne devez pas modifier le classement de la base de données sans exigences spécifiques. Cela pourrait causer des problèmes si vous le modifiez arbitrairement

    Conclusion

    Cet article a exploré le classement par défaut de la base de données Azure SQL et le processus de modification lors de l’importation de la base de données à partir d’un fichier BACPAC. Vous pouvez spécifier le classement souhaité et déployer la base de données. Cependant, ne modifiez jamais le classement sauf si vous avez une exigence spécifique. Vous pouvez essayer les étapes sur votre propre base de données SQL Azure de test.

    • Auteur
    • Messages récents
     Rajendra Gupta
    En tant que formateur certifié MCSA et certifié Microsoft à Gurgaon, en Inde, avec 13 ans d’expérience, Rajendra travaille pour diverses grandes entreprises se concentrant sur l’optimisation des performances, la surveillance, la haute disponibilité et les stratégies et la mise en œuvre de reprise après sinistre. Il est l’auteur de centaines d’articles faisant autorité sur SQL Server, Azure, MySQL, Linux, Power BI, Performance tuning, AWS / Amazon RDS, Git et les technologies connexes qui ont été consultés par plus de 10 millions de lecteurs à ce jour.
    Il est le créateur de l’une des plus grandes collections en ligne gratuites d’articles sur un seul sujet, avec sa série de 50 parties sur SQL Server Always On Availability Groups. Sur la base de sa contribution à la communauté SQL Server, il a été récompensé par divers prix dont le prestigieux « Meilleur auteur de l’année » en 2020 et 2021 à SQLShack.
    Raj est toujours intéressé par les nouveaux défis, donc si vous avez besoin d’aide pour consulter un sujet traité dans ses écrits, il peut être joint à rajendra.gupta 16 @ gmail.com
    Voir tous les messages de Rajendra Gupta

     Rajendra Gupta
    Derniers articles de Rajendra Gupta (tout voir)
    • Utiliser des modèles ARM pour déployer des instances de conteneur Azure avec des images Linux SQL Server – 21 décembre 2021
    • Accès au bureau à distance pour AWS RDS SQL Server avec Amazon RDS Custom – 14 décembre 2021
    • Stocker les fichiers SQL Server dans un stockage Persistant pour les instances de conteneur Azure – Décembre 10, 2021

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.