Ah, aber es ist möglich wie es ist eine Sortierung, die dies auf natürliche Weise handhabt (eigentlich mehrere, aber alle in derselben "Familie"):Hungarian_Technical_* (Nun, abzüglich der Variationen CaseSensitive (CS) und Binary (BIN / BIN2). Natürlich bin ich mir immer noch nicht sicher, ob dies eine gute Wahl für einen PK ist, aber kein Grund, warum es kein UNIQUE INDEX
sein kann .
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]);
Ergebnisse:
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
Es gibt insgesamt 24 Sortierungen, die auf diese Weise funktionieren. Sie finden sie unter:
SELECT hc.*
FROM sys.fn_HelpCollations() hc
WHERE hc.name LIKE N'Hungarian[_]Technical%'
AND hc.name LIKE N'%[_]CI%'
ORDER BY hc.name;
Sie sind:
Wenn die Version 100
Sortierungen verfügbar sind (d. h. Sie verwenden SQL Server 2008 oder neuer), dann verwenden Sie diese und nicht die Sortierungen ohne Versionsnummer im Namen.
BEARBEITEN:
Ich habe einige zusätzliche Informationen über die Kollation "Hungarian Technical" gefunden, die von Interesse sein könnten:
-
MySQL:Ungarische Sortierung -- Dies ist ein Archiv einer Listserv-Diskussion einiger MySQL-Entwickler, die versuchten, die Besonderheiten der Implementierung der Sortierung herauszufinden. Anscheinend hat es einige komplexe Regeln, die zumindest teilweise darauf zurückzuführen sind, dass mehrere Zeichen zum Sortieren einem einzigen Zeichen gleichgesetzt werden müssen (siehe Abschnitt "3. Spezielle Digraph / Trigraph-Regel"). Das vielleicht ein unerwartetes Verhalten verursachen. Die spezifischen Buchstabenkombinationen sind in diesem Abschnitt notiert, sodass es zumindest einfacher ist, einen Testfall einzurichten, um festzustellen, ob die Sortierregeln mit dieser Sortierung ungültig werden.
-
Warum gibt es so viele(106) ungarische Kollatierungen? -- Dies ist eine Diskussion auf social.msdn, die einige interessante Informationen enthält. Darin ist ein Kommentar von Erland Sommarsko, in dem er sagt:
Angesichts der Diskussion der MySQL-Entwickler über die komplexen Regeln scheinen diese Testergebnisse nicht allzu überraschend zu sein.
Daher sollten diese beiden Elemente wahrscheinlich bei der Entscheidung berücksichtigt werden, ob man den einfachen Weg geht, einfach das NVARCHAR-Feld auf eine dieser ungarischen technischen Sortierungen zu setzen, oder sich an die Empfehlung von @GarethD für die berechnete Spalte hält.
Weitere Informationen zum Arbeiten mit Zeichenfolgen und Kollatierungen finden Sie unter:Collations Info