Comment comparer 2 chaînes de caractères avec SQL Server en ignorant la casse (les majuscules et les minuscules et/ou les accents.
Nous allons utiliser le paramètre COLLATE qui permet de régler la page de code l'ordre de tri et de comparaison.
Celà fonctionne sur SQL Server 7 et 2000, quel que soit les éditions (Express et MSDE incluses)
Cette fonctionnalité s'applique aussi au LIKE qui contrairement à ce que l'on pense peut être sensible à la casse.
De quoi dépend cette sensibilité, tout simplement du paramètre que vous renseignez à l'installation du serveur. Ensuite chaque base de données peut avoir le siens, et même chaque champ texte.
Syntaxe du COLLATE :
COLLATE PageCode_Casse_Accent_Kana_Largeur
Exemple :
Latin1_General_CI_AI
où
PageCode est Latin1_General ==> Alphabet Latin et ordre de tri standard
Casse est CI ==> Case Insensitive : Non sensible aux minuscules / majuscules
Accent est AI ==> Accent Insensitive : Non sensible aux accents
Dans le code ci-dessous je pars du principe que votre page de code est French, remplacez là par la votre.
Vous pourrez la retrouver par cette requête (remplacez 'VotreBaseDeDonnées' par votre base de données) :
SELECT collation_name AS [Collation],
FROM master.sys.databases
WHERE name=N'VotreBaseDeDonnées'