Windows-sammansättningsnamn (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Microsoft Fabric

Specificerar Windows-sorteringsnamnet i klausulen COLLATE i SQL Server. Namnet Windows sortering består av sorteringsbeteckningen och jämförelsestilarna.

Transact-SQL syntaxkonventioner

Syntax

<Windows_collation_name> ::=
<CollationDesignator>_<ComparisonStyle>

<ComparisonStyle> ::=
{ <CaseSensitivity>_<AccentSensitivity> [ _<KanatypeSensitive> ] [ _<WidthSensitive> ] [ _<VariationSelectorSensitive> ]
}
| { _UTF8 }
| { _BIN | _BIN2 }

Arguments

KollationDesignator

Specificerar de bas-sorteringsregler som används av Windows-sorteringen. Bassorteringsreglerna täcker:

  • Sorterings- och jämförelsereglerna som tillämpas vid ordbokssortering specificeras. Sorteringsreglerna baseras på alfabetet eller språket.
  • Kodsidan som används för att lagra varchar-data .

Några exempel är:

  • Latin1_General eller French: båda använder kodblad 1252.
  • Turkish: använder kodsida 1254.

CasSensitivity

CI specificerar kasuskänslig, CS anger kasuskänslig.

AccentSensitivitet

AI specificerar accent-insensitiv, AS specificerar accent-sensitiv.

KanatypeSensitive

Att utelämna detta alternativ specificerar kanatype-insensitive, KS specificerar kanatype-sensitive.

WidthSensitivity

Att utelämna detta alternativ anger breddkänslig, WS anger breddkänslig.

VariationSelectorSensitivity

Gäller för: SQL Server 2017 (14.x) och senare versioner

Att utelämna detta alternativ specificerar variationsväljare-insensitive, VSS specificerar variationsväljar-sensitiv.

UTF8

Gäller för: SQL Server 2019 (15.x) och senare versioner

Specificerar UTF-8-kodning som ska användas för berättigade datatyper. För mer information, se Sortering och Unicode-stöd.

{ BIN | BIN2 }

  • BIN specificerar den bakåtkompatibla binära sorteringsordningen som ska användas.
  • BIN2 specificerar den binära sorteringsordningen som använder kodpunktsjämförelsesemantik.

Anmärkningar

Beroende på vilken version av sorteringen kan vissa kodpunkter sakna sorteringsvikter, eller definiera mappningar med versaler/gemener. Jämför till exempel utdata från LOWER funktionen när den har samma tecken, men i olika versioner av samma sortering:

SELECT NCHAR(504) COLLATE Latin1_General_CI_AS AS [Uppercase],
       NCHAR(505) COLLATE Latin1_General_CI_AS AS [Lowercase];

Här är resultatet.

Kolumnnamn Result
Uppercase Ǹ
Lowercase ǹ

Den första satsen visar både versaler och gemener av detta tecken i den äldre sorteringen (sorteringen påverkar inte tillgängligheten av tecken när man arbetar med Unicode-data).

SELECT LOWER(NCHAR(504) COLLATE Latin1_General_CI_AS) AS [Version80Collation],
       LOWER(NCHAR(504) COLLATE Latin1_General_100_CI_AS) AS [Version100Collation];

Här är resultatet.

Kolumnnamn Result
Version80Collation Ǹ
Version100Collation ǹ

Det andra påståendet visar att ett stort tecken returneras när kollationen är Latin1_General_CI_AS, eftersom denna kodpunkt inte har en gemener avbildning definierad i den kollationen.

När man arbetar med vissa språk kan det vara avgörande att undvika de äldre kollationerna. Till exempel gäller detta för Telegu.

I vissa fall kan Windows-sammanställningar och SQL Server-sorteringar generera olika frågeplaner för samma fråga.

Examples

Följande tabell beskriver några exempel på Windows-sorteringsnamn.

Collation Description
Latin1_General_100_CI_AS Sortering använder Latin1 General ordbokssorteringsregler och mappar till kodsida 1252. Det är en versionskollation _100 och är kasus-insensitiv (CI) och accent-sensitiv (AS).
Estonian_CS_AS Sortering använder de estniska ordbokssorteringsreglerna och mappar till kodsidan 1257. Det är en versionskollation _80 (antydd av att det inte finns något versionsnummer i namnet), och är kasuskänslig (CS) och accentkänslig (AS).
Japanese_Bushu_Kakusu_140_BIN2 Sortering använder binär kodpunktsorteringsregler och mappar till kodsida 932. Det är en versionssortering _140 , och de japanska Bushu Kakusu-ordbokssorteringsreglerna ignoreras.

Windows-sortering

För att lista de Windows-sammansättningar som stöds av din SQL Server-instans, kör följande fråga.

SELECT *
FROM sys.fn_helpcollations()
WHERE [name] NOT LIKE N'SQL%';