Question

Comment déterminez-vous le classement d'une base de données dans SQL 2005, par exemple si vous devez effectuer une recherche / un remplacement ne respectant pas la casse?

Était-ce utile?

La solution 3

Utilisez le code SQL suivant pour déterminer le classement d'une base de données:

SELECT DATABASEPROPERTYEX('{database name}', 'Collation') SQLCollation;

Autres conseils

N'oubliez pas que des colonnes individuelles peuvent remplacer le classement de la base de données:

SELECT TABLE_NAME, COLUMN_NAME, COLLATION_NAME
FROM INFORMATION_SCHEMA.COLUMNS

Sélectionnez la base de données et exécutez la commande suivante.

sp_helpsort

Si vous souhaitez effectuer une recherche ne respectant pas la casse et que vous ne pouvez pas vous fier au classement de la base de données, vous pouvez toujours le demander spécifiquement pour la requête qui vous intéresse. Par exemple:

SELECT TOP 1 FName, *
FROM People
WHERE FName LIKE '%mich%' COLLATE Latin1_General_CI_AI

J'ai généralement le problème opposé, où je veux la distinction entre majuscules et minuscules mais que je ne l'ai pas dans le classement de la base de données. Je me retrouve donc assez souvent en utilisant le classement Latin1_General_BIN dans mes requêtes. Si vous ne le savez pas déjà, vous pouvez faire:

SELECT 
FROM ::fn_helpcollations()

pour obtenir une liste des classements disponibles et une description de leur fonction.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top