COLLATE (Transact-SQL)
van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Warehouse in Microsoft Fabric
Definieert een sortering van een database- of tabelkolom of een sorteringscastbewerking wanneer deze wordt toegepast op tekenreeksexpressie. De sorteringsnaam kan een Windows-sorteringsnaam of een SQL-sorteringsnaam zijn. Als deze niet is opgegeven tijdens het maken van de database, wordt de standaardsortering van het exemplaar van SQL Server toegewezen. Als deze niet is opgegeven tijdens het maken van de tabelkolom, wordt de standaardsortering van de database toegewezen aan de kolom.
Transact-SQL syntaxisconventies
Syntaxis
COLLATE { <collation_name> | database_default }
<collation_name> ::=
{ Windows_collation_name } | { SQL_collation_name }
Argumenten
collation_name is de naam van de sortering die moet worden toegepast op de expressie, kolomdefinitie of databasedefinitie. collation_name kan alleen een opgegeven Windows_collation_name of een SQL_collation_namezijn. collation_name moet een letterlijke waarde zijn. collation_name kan niet worden vertegenwoordigd door een variabele of expressie.
Windows_collation_name is de sorteringsnaam voor een Windows-sorteringsnaam.
SQL_collation_name is de sorteringsnaam voor een SQL Server-sorteringsnaam.
Notitie
In Microsoft Fabric is de enige sortering toegestaan: Latin1_General_100_BIN2_UTF8.
database_default zorgt ervoor dat de COLLATE-component de sortering van de huidige database over neemt.
Opmerkingen
De COLLATE-component kan op verschillende niveaus worden opgegeven. Deze omvatten het volgende:
Een database maken of wijzigen.
U kunt de COLLATE-component van de
CREATE DATABASE
- ofALTER DATABASE
-instructie gebruiken om de standaardsortering van de database op te geven. U kunt ook een sortering opgeven wanneer u een database maakt met behulp van SQL Server Management Studio. Als u geen sortering opgeeft, wordt aan de database de standaardsortering van het exemplaar van SQL Server toegewezen.Notitie
Windows Unicode-sorteringen kunnen alleen worden gebruikt met de COLLATE-component om sorteringen toe te passen op de nchar, nvarcharen ntext gegevenstypen op kolom- en expressieniveaugegevens; deze kunnen niet worden gebruikt met de COLLATE-component om de sortering van een database of serverexemplaren te definiëren of te wijzigen.
Een tabelkolom maken of wijzigen.
U kunt sorteringen opgeven voor elke tekenreekskolom met behulp van de component COLLATE van de
CREATE TABLE
ofALTER TABLE
instructie. U kunt ook een sortering opgeven wanneer u een tabel maakt met BEHULP van SQL Server Management Studio. Als u geen sortering opgeeft, wordt aan de kolom de standaardsortering van de database toegewezen.U kunt ook de optie
database_default
in de component COLLATE gebruiken om op te geven dat een kolom in een tijdelijke tabel de sorteringsstandaard van de huidige gebruikersdatabase voor de verbinding gebruikt in plaats vantempdb
.De sortering van een expressie gieten.
U kunt de component COLLATE gebruiken om een tekenexpressie toe te passen op een bepaalde sortering. Letterlijke tekens en variabelen worden toegewezen aan de standaardsortering van de huidige database. Kolomverwijzingen worden toegewezen aan de definitiesortering van de kolom.
De sortering van een id is afhankelijk van het niveau waarop deze is gedefinieerd. Id's van objecten op exemplaarniveau, zoals aanmeldingen en databasenamen, worden de standaardsortering van het exemplaar toegewezen. Id's van objecten in een database, zoals tabellen, weergaven en kolomnamen, worden de standaardsortering van de database toegewezen. Twee tabellen met namen kunnen bijvoorbeeld alleen worden gemaakt in een database met hoofdlettergevoelige sortering, maar mogelijk niet in een database met hoofdlettergevoelige sortering. Zie Database-id'svoor meer informatie.
Variabelen, GOTO-labels, tijdelijke opgeslagen procedures en tijdelijke tabellen kunnen worden gemaakt wanneer de verbindingscontext is gekoppeld aan één database en vervolgens wordt verwezen wanneer de context is overgeschakeld naar een andere database. De id's voor variabelen, GOTO-labels, tijdelijke opgeslagen procedures en tijdelijke tabellen bevinden zich in de standaardsortering van het serverexemplaren.
De COLLATE-component kan alleen worden toegepast voor het teken, varchar, tekst, nchar, nvarcharen ntext gegevenstypen.
COLLATE gebruikt collate_name om te verwijzen naar de naam van de SQL Server-sortering of de Windows-sortering die moet worden toegepast op de expressie, kolomdefinitie of databasedefinitie. collation_name kan alleen een opgegeven Windows_collation_name of een SQL_collation_name zijn en de parameter moet een letterlijke waarde bevatten. collation_name kan niet worden vertegenwoordigd door een variabele of expressie.
Sorteringen worden over het algemeen aangeduid met een sorteringsnaam, behalve in Setup. In Setup geeft u in plaats daarvan de hoofdsorteringsaanduiding (de landinstelling voor sortering) voor Windows-sorteringen op en geeft u vervolgens sorteeropties op die gevoelig of niet gevoelig zijn voor hoofdletters of accenten.
U kunt de systeemfunctie fn_helpcollations uitvoeren om een lijst met alle geldige sorteringsnamen voor Windows-sorteringen en SQL Server-sorteringen op te halen:
SELECT name, description
FROM fn_helpcollations();
SQL Server kan alleen codepagina's ondersteunen die worden ondersteund door het onderliggende besturingssysteem. Wanneer u een actie uitvoert die afhankelijk is van sorteringen, moet de SQL Server-sortering die wordt gebruikt door het object waarnaar wordt verwezen, een codepagina gebruiken die wordt ondersteund door het besturingssysteem dat op de computer wordt uitgevoerd. Deze acties kunnen het volgende omvatten:
- Een standaardsortering voor een database opgeven wanneer u de database maakt of wijzigt.
- Een sortering voor een kolom opgeven wanneer u een tabel maakt of wijzigt.
- Bij het herstellen of koppelen van een database, moet de standaardsortering van de database en de sortering van tekens, varcharen tekst kolommen of parameters in de database worden ondersteund door het besturingssysteem.
Notitie
Vertalingen van codepagina's worden ondersteund voor teken en varchar gegevenstypen, maar niet voor tekst gegevenstype. Gegevensverlies tijdens het vertalen van codepagina's wordt niet gerapporteerd.
Als de sortering die is opgegeven of de sortering die wordt gebruikt door het object waarnaar wordt verwezen, een codepagina gebruikt die niet wordt ondersteund door Windows, wordt in SQL Server een fout weergegeven.
Voorbeelden
Een. Sortering opgeven tijdens een SELECT
In het volgende voorbeeld wordt een eenvoudige tabel gemaakt en worden vier rijen ingevoegd. Vervolgens worden in het voorbeeld twee sorteringen toegepast bij het selecteren van gegevens uit de tabel, waarmee wordt gedemonstreerd hoe Chiapas
anders wordt gesorteerd.
CREATE TABLE Locations
(Place varchar(15) NOT NULL);
GO
INSERT Locations(Place) VALUES ('Chiapas'),('Colima')
, ('Cinco Rios'), ('California');
GO
--Apply a typical collation
SELECT Place FROM Locations
ORDER BY Place
COLLATE Latin1_General_CS_AS_KS_WS ASC;
GO
-- Apply a Spanish collation
SELECT Place FROM Locations
ORDER BY Place
COLLATE Traditional_Spanish_ci_ai ASC;
GO
-- Using LIKE
SELECT Place FROM Locations
WHERE Place COLLATE Latin1_General_CI_AS LIKE 'C%' ASC;
GO
Dit zijn de resultaten van de eerste SELECT
query.
Place
-------------
California
Chiapas
Cinco Rios
Colima
Dit zijn de resultaten van de tweede SELECt
query.
Place
-------------
California
Cinco Rios
Colima
Chiapas
Hier volgen de resultaten van de derde SELECt
query.
Place
-------------
Chiapas
Colima
Cinco Rios
California
B. Aanvullende voorbeelden
Zie CREATE DATABASE voorbeeld G. Een database maken en een sorteringsnaam en optiesopgeven en ALTER TABLE voorbeeld V. Kolomsortering wijzigenvoor aanvullende voorbeelden die gebruikmaken van SORTEREN.