Comment utiliser la commande SQL Server Collate

Comment utiliser la commande SQL Server Collate
Ce guide couvrira les principes fondamentaux du travail avec la commande SQL Server Callate. Avant d'y arriver, qu'est-ce qu'un collation SQL Server?

Qu'est-ce que SQL Server Collation?

SQL Server Collation fait référence à un ensemble de règles qui régissent comment trier et comparer les données des caractères dans une base de données. SQL Server fournit une large gamme de collations pour gérer les données des caractères. Ces collations peuvent gérer des données avec des langages et des régions conflictuels, permettant à une base de données d'être compatible avec les applications dans le monde entier.

Niveaux de collation SQL Server

Dans le serveur SQL, il y a trois niveaux principaux où vous pouvez définir les collations:

  1. Niveau d'instance SQL Server
  2. Niveau de base de données
  3. Niveau de colonne

Notez qu'un nom de collation peut être une collation Windows ou un nom de collation fourni par SQL Server.

Vous pouvez spécifier le type de collation lors de la création d'une base de données. S'il n'est pas spécifié lors de la création d'une base de données, SQL Server sera par défaut à la collation utilisée par l'instance SQL Server.

De même, si vous ne définissez pas la collation lors de la création d'une colonne, SQL Server sera par défaut à la collation utilisée dans cette base de données.

Niveau d'instance SQL Server

Vous pouvez définir votre collation préférée pour votre instance SQL Server lors de l'installation. Si le serveur SQL est déjà installé, vous pouvez utiliser l'assistant du centre d'installation pour redéfinir votre type de collation.

Pour afficher la collation actuelle pour votre instance SQL Server, ouvrez le SQL Server Management Studio.

Cliquez avec le bouton droit sur votre instance SQL Server et sélectionnez l'option Propriétés:

Dans la fenêtre Propriétés, sélectionnez l'onglet du général dans le menu de gauche. Cela montrera les informations générales sur votre instance SQL Server, y compris le type de collation par défaut:

Dans notre exemple, la collation par défaut est définie sur sql_latin1_general_cp1_c1_as. Il s'agit d'une collation SQL Server plutôt que d'une collation Windows, comme l'indique le préfixe SQL_.

L'autre partie contient le nom de la collation, dans ce cas, Latin1_General_CP_AS. La valeur CI indique que la collation est insensible au cas, tandis que comme signifie qu'elle est sensible à l'accent.

Pour obtenir une description plus détaillée de la collation par défaut de SQL Server, utilisez la procédure SP_HELPSORT comme indiqué:

Exec sp_helpsort;

La procédure doit renvoyer les informations comme indiqué:

Collation par défaut du serveur
-----------------------------------------------------------------------------------------------------------------
Latin1-général, insensible à la casse, sensible à l'accent, kanatype-insensible, insensible à la largeur pour les données Unicode, SQL Server Tri Commandez 52 sur la page de code 1252 pour les données non Unicodes

Collation au niveau de la base de données

Nous pouvons définir la collation au niveau de la base de données. Comme mentionné, à moins que ce soit explicitement spécifié, une base de données héritera de la collation de l'instance SQL Server.

Pour afficher la collation d'une base de données dans le SQL Server Management Studio (SSMS), cliquez avec le bouton droit sur votre base de données cible et ouvrez la fenêtre Propriétés:

Dans la fenêtre Propriétés, sélectionnez l'onglet du général et accédez à la section de maintenance. Vous devriez voir le collation de la base de données répertoriée:

Dans notre cas, la base de données hérite du même collation que l'instance SQL Server.

Définir la collation de la base de données
Pour définir la collation souhaitée pendant la création de la base de données, vous pouvez utiliser la requête comme indiqué ci-dessous:

Créer une base de données Sample_Database
Collater SQL_LATIN1_GENERAL_CP1_CS_AS;

Dans la requête ci-dessus, nous créons une base de données avec la collation sql_latin1_general_cp1_cs_as. Il est similaire à la SQL_LATIN1_GENERAL_CI_AI, sauf qu'il est sensible au cas et à l'accent, comme indiqué par CS et comme dans le nom de collation:

Définir la collation dans une base de données existante
SQL Server vous permet de modifier le collation après la création à l'aide de la commande alter de la base de données.

Par exemple, la requête suivante modifie la collation de la base de données de SQL_LATIN1_GENERAL_CP1_CS_AS à SQL_SLOVAK_CP1250_CS_AS:

Utilisez Sample_Database;
ALTER DATABASE Sample_Database Collate SQL_SLOVAK_CP1250_CS_AS;

Avant de modifier la collation de la base de données, assurez-vous que toutes les connexions à la base de données sont fermées. Sinon, la requête échouera.

SQL Server affiche les collations prises en charge
Pour afficher les collations prises en charge pour votre version SQL Server, utilisez la requête comme indiqué ci-dessous:

Sélectionnez le nom, description de SYS.fn_helpCollations ();

Si vous utilisez SQL Server 2019, nous avons fourni une liste des collations prises en charge. Téléchargez le fichier dans la ressource ci-dessous:

Collation au niveau de la colonne

Dans la plupart des cas, vous voudrez qu'une colonne de caractères hérite d'un collation similaire à la base de données. Cependant, vous pouvez spécifier explicitement la collation pour une colonne lors de la création de colonnes.

Gardez à l'esprit que vous ne pouvez définir une collation de colonne que si la colonne est de type char tel que:

  1. Varchar
  2. Nvarchar
  3. CARBONISER
  4. Next
  5. TEXTE

Pour définir une colonne à l'aide de T-SQL, utilisez l'exemple de requête comme indiqué:

Créer des informations sur la table (
id int,
Text_ Varchar (50) Collate SQL_EBCDIC280_CP1_CS_AS
));

Pour afficher la collation d'une colonne, vous pouvez utiliser la procédure SP_HELP comme indiqué ci-dessous:

EXEC SP_HELP Info;

La commande doit retourner des informations sur la colonne, y compris la collation comme:

Conclusion

Dans cet article, nous avons exploré le concept de collations SQL Server, ce qu'ils sont et comment nous pouvons afficher ou modifier les collations à différents niveaux, tels que le niveau d'instance SQL Server, le niveau de base de données et le niveau de colonne. Nous espérons que vous avez trouvé cet article utile. Découvrez les autres articles sur les conseils pour plus de conseils et de tutoriels.