Ah, men det er muligt, som der er en kollation, der håndterer dette naturligt (flere faktisk, men alle i samme "familie"):Ungarsk_teknisk_* (nå, minus CaseSensitive (CS) og Binære (BIN / BIN2) variationer). Jeg er selvfølgelig stadig ikke sikker på, at dette er et godt valg til en PK, men ingen grund til, at det ikke kan være et 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]);
Resultater:
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
Der er i alt 24 sammenstillinger, der vil fungere på denne måde. Du kan finde dem via:
SELECT hc.*
FROM sys.fn_HelpCollations() hc
WHERE hc.name LIKE N'Hungarian[_]Technical%'
AND hc.name LIKE N'%[_]CI%'
ORDER BY hc.name;
De er:
Hvis versionen 100
sorteringer er tilgængelige (hvilket betyder:du bruger SQL Server 2008 eller nyere), så brug dem og ikke sorteringer uden versionsnummer i deres navne.
EDIT:
Jeg fandt nogle yderligere oplysninger om "Ungarsk teknisk"-samling, som kunne være af interesse:
-
MySQL:Ungarsk kollation -- Dette er et arkiv af en listserv-diskussion af nogle MySQL-udviklere, der forsøger at finde ud af detaljerne i, hvordan man implementerer sammenstillingen. Det har tilsyneladende nogle komplekse regler, som i det mindste delvist skyldes behovet for at sidestille flere tegn til et enkelt tegn til sortering (se efter afsnittet "3. Speciel digraf/trigrafregel"). Dette måske forårsage noget uventet adfærd. De specifikke bogstavkombinationer er noteret i det afsnit, så det gør det i det mindste nemmere at oprette en testcase for at hjælpe med at afgøre, om sorteringsreglerne er ugyldige ved brug af denne sortering.
-
Hvorfor er der så mange(106) ungarske kollationer? -- Dette er en diskussion på social.msdn, der har nogle interessante oplysninger. Der er en kommentar derinde af Erland Sommarsko, hvori han udtaler:
I betragtning af diskussionen fra MySQL-udviklerne om de komplekse regler, virker disse testresultater ikke så overraskende.
Så begge disse punkter bør sandsynligvis tages med i beslutningen om, hvorvidt man skal gå den nemme vej, blot at indstille NVARCHAR-feltet til en af disse ungarske tekniske sammenstillinger, eller følge @GarethDs anbefaling af den beregnede kolonne.
For mere information om at arbejde med strenge og kollationer, besøg venligst:Samlinger Info