Ah, mas é possível, pois existe um agrupamento que lida com isso naturalmente (vários na verdade, mas todos na mesma "família"):Hungarian_Technical_* (bem, menos as variações CaseSensitive (CS) e Binary (BIN / BIN2)). Claro, ainda não tenho certeza se esta é uma boa escolha para um PK, mas não há razão para não ser um
UNIQUE INDEX
. SELECT tmp.*,
IIF(tmp.[First] = tmp.[Second] COLLATE Hungarian_Technical_CI_AI,
N'Equal',
N'NOT EQUAL') AS [Result]
FROM (
SELECT N'weiß', N'Weiß', N'Equal'
UNION ALL
SELECT N'weiss', N'Weiss', N'Equal'
UNION ALL
SELECT N'weiß', N'weiss', N'NOT Equal'
UNION ALL
SELECT N'Weiß', N'Weiss', N'NOT Equal'
UNION ALL
SELECT N'weiß', N'Weiss', N'NOT Equal'
) tmp ([First], [Second], [Ideal]);
Resultados:
First Second Ideal Result
weiß Weiß Equal Equal
weiss Weiss Equal Equal
weiß weiss NOT Equal NOT EQUAL
Weiß Weiss NOT Equal NOT EQUAL
weiß Weiss NOT Equal NOT EQUAL
Há 24 agrupamentos totais que funcionarão dessa maneira. Você pode encontrá-los através de:
SELECT hc.*
FROM sys.fn_HelpCollations() hc
WHERE hc.name LIKE N'Hungarian[_]Technical%'
AND hc.name LIKE N'%[_]CI%'
ORDER BY hc.name;
Eles são:
Se a versão
100
ordenações estão disponíveis (ou seja:você está usando o SQL Server 2008 ou mais recente), use-as e não as ordenações sem número de versão em seus nomes. EDITAR:
Encontrei algumas informações adicionais sobre o agrupamento "Hungarian Technical" que podem ser de seu interesse:
-
MySQL:agrupamento húngaro -- Este é um arquivo de uma discussão do listserv por alguns desenvolvedores do MySQL tentando descobrir os detalhes de como implementar o agrupamento. Aparentemente, ele tem algumas regras complexas, devido, pelo menos em parte, à necessidade de equacionar vários caracteres em um único caractere para classificação (procure a seção "3. Regra especial de dígrafo/trígrafo"). Isso pode causar algum comportamento inesperado. As combinações de letras específicas são observadas nessa seção, portanto, pelo menos, facilita a configuração de um caso de teste para ajudar a determinar se as regras de classificação invalidam o uso desse agrupamento.
-
Por que existem tantos (106) agrupamentos húngaros? -- Esta é uma discussão no social.msdn que tem algumas informações interessantes. Há um comentário lá de Erland Sommarsko no qual ele afirma:
Dada a discussão dos desenvolvedores do MySQL sobre as regras complexas, os resultados dos testes não parecem tão surpreendentes.
Portanto, esses dois itens provavelmente devem ser considerados para decidir se deve ou não seguir o caminho mais fácil de simplesmente definir o campo NVARCHAR para um desses agrupamentos técnicos húngaros ou seguir a recomendação do @GarethD da coluna computada.
Para obter mais informações sobre como trabalhar com strings e agrupamentos, visite:Informações de agrupamentos