Subquestioning la réponse à mon autre question:Comment comparer des symboles par collation différente de la collation par défaut de la base de données?
Comment mieux comparer les 2 symboles (non-N ') en utilisant explicitement un classement qui est différent d'une collation de base de données par défaut?
Mise à jour: Je dois comparer char() ou varchar() valeurs I extraites d'une base de données et les mettre dans les variables @ s1 et @ s2
use dbName;
--here I alternated different db names with different collations
declare @s1 nchar(1)='à'
declare @s2 nchar(1)='a'
select
case
when @s1 <> @s2 Then 'a is NOT equal à'
else 'a is equal to à'
end
collate latin1_General_CS_AS
sorties
- a est égal à uN (sur la base de données avec le classement par défaut LATIN1_General_CI_AI)
- un est égal à pas (db avec Latin1_General_CI_AS
Est-il possible de passer outre le classement de base de données par défaut pour un bloc d'opérations au lieu d'écrire COLLATE dans chaque déclaration? –
@ vgv8 - Je ne suis au courant d'aucun moyen de le faire - l'aide pour l'assemblage, http://msdn.microsoft.com/en-us/library/ms184391.aspx, indique seulement 3 endroits où il peut être utilisé (Définition de base de données, définition de colonne et classements de collation, ce que nous faisons ici). –