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.
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
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.
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
|
- 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
- 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
- / 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
- 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
- Auteur
- Messages récents
- 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
Pour cette démo de l’article, nous effectuerons les tâches suivantes:
É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.
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…
Spécifiez le répertoire de la sauvegarde sur le disque local.
Vérifier, exporter et surveiller la progression de l’application de niveau de données au format BACPAC.
É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.
Sélectionnez la version de fichier MSI requise et téléchargez-la. C’est un fichier de package léger.
Suivez l’assistant d’installation pour configurer le framework d’application de niveau de données Microsoft SQL Server.
É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.
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.
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.
É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:
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.
À la fin, vous obtenez la base de données importée avec succès.
É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.
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.
É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.
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
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.
Vous pouvez vous connecter au portail Azure et vérifier le niveau de tarification comme Basique.
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.
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