Megosztás a következőn keresztül:


COLLATE (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsAnalytics platformrendszer (PDW)Warehouse a Microsoft Fabric

Meghatározza egy adatbázis vagy táblaoszlop rendezési módját, illetve a karaktersztring-kifejezésre alkalmazott rendezési műveletet. A rendezés neve lehet Windows-rendezési név vagy SQL-rendezés neve. Ha az adatbázis létrehozásakor nincs megadva, az adatbázishoz az SQL Server-példány alapértelmezett rendezése tartozik. Ha a táblaoszlop létrehozásakor nincs megadva, az oszlop az adatbázis alapértelmezett rendezési eleméhez lesz rendelve.

Transact-SQL szintaxis konvenciói

Szintaxis

COLLATE { <collation_name> | database_default }
<collation_name> ::=
    { Windows_collation_name } | { SQL_collation_name }

Érvek

collation_name

A kifejezésre, oszlopdefinícióra vagy adatbázisdefinícióra alkalmazni kívánt rendezés neve. collation_name csak meghatározott Windows_collation_name vagy SQL_collation_namelehet. collation_name literálértéknek kell lennie. collation_name nem jelölhető változó vagy kifejezés.

Windows_collation_name egy Windows-rendezési névrendezési neve.

SQL_collation_name egy SQL Server-rendezési névrendezési neve.

Jegyzet

A Microsoft Fabric Data Warehouse-ban a SELECT utasítás COLLATE záradéka korlátlan, és nem támogatott rendezésekkel is alkalmazható. A Microsoft Fabric Data Warehouse-ban alapértelmezés szerint minden raktár kis- és nagybetűk megkülönböztetésével (CS) rendezési Latin1_General_100_BIN2_UTF8van konfigurálva. A kis- és nagybetűk megkülönböztetése (CI) rendezési Latin1_General_100_CI_AS_KS_WS_SC_UTF8is létrehozhat raktárakat.

A CREATE TABLE, ALTER TABLE ADD nullable column, SELECT INTOés CREATE TABLE AS SELECT (CTAS) utasítások COLLATE záradékával azonban csak támogatott rendezés használható.

database_default A COLLATE záradék örökli az aktuális adatbázis rendezést.

Megjegyzések

A COLLATE záradék több szinten is megadható. Ezek közé tartoznak a következők:

  1. Adatbázis létrehozása vagy módosítása.

    Az adatbázis alapértelmezett rendezési módját a CREATE DATABASE vagy ALTER DATABASE utasítás COLLATE záradékával adhatja meg. Rendezést is megadhat, ha adatbázist hoz létre az SQL Server Management Studióval. Ha nem ad meg rendezést, a rendszer az adatbázishoz rendeli hozzá az SQL Server-példány alapértelmezett rendezést.

    Jegyzet

    A Csak Windows Unicode-rendezések csak a COLLATE záradékkal használhatók az nchar, nvarcharés ntext adattípusokra oszlopszintű és kifejezésszintű adatokra; ezek nem használhatók a COLLATE záradékkal egy adatbázis vagy kiszolgálópéldány rendezésének meghatározására vagy módosítására.

  2. Táblaoszlop létrehozása vagy módosítása.

    A CREATE TABLE vagy ALTER TABLE utasítás COLLATE záradékával rendezéseket adhat meg az egyes karaktersztringoszlopokhoz. Rendezést akkor is megadhat, ha táblát hoz létre az SQL Server Management Studióval. Ha nem ad meg rendezést, az oszlop az adatbázis alapértelmezett rendezési eleméhez lesz rendelve.

    A COLLATE záradék database_default beállításával azt is megadhatja, hogy egy ideiglenes tábla egyik oszlopa az aktuális felhasználói adatbázis rendezési alapértelmezett értékét használja a kapcsolathoz tempdbhelyett.

  3. Kifejezés rendezési sorrendjének kiosztása.

    A COLLATE záradék használatával karakterkifejezést alkalmazhat egy adott rendezésre. A karakterkonstansok és a változók az aktuális adatbázis alapértelmezett rendezéséhez vannak hozzárendelve. Az oszlophivatkozások az oszlop definíció szerinti rendezéséhez vannak rendelve.

Az azonosító rendezése attól függ, hogy milyen szinten van definiálva. A példányszintű objektumok (például bejelentkezések és adatbázisnevek) azonosítói a példány alapértelmezett rendezéséhez vannak rendelve. Az adatbázison belüli objektumok (például táblák, nézetek és oszlopnevek) azonosítói az adatbázis alapértelmezett rendezési eleméhez vannak rendelve. Előfordulhat például, hogy a kis- és nagybetűk megkülönböztetése esetén eltérő nevű táblákat egy kis- és nagybetűket megkülönböztető rendezéssel rendelkező adatbázisban hozzák létre, de nem olyan adatbázisban, amely megkülönbözteti a kis- és nagybetűket. További információ: Adatbázis-azonosítók.

Változók, GOTO-címkék, ideiglenes tárolt eljárások és ideiglenes táblák akkor hozhatók létre, ha a kapcsolati környezet egy adatbázishoz van társítva, majd hivatkozhat rá, amikor a környezet másik adatbázisra lett váltva. A változók, a GOTO-címkék, az ideiglenes tárolt eljárások és az ideiglenes táblák azonosítói a kiszolgálópéldány alapértelmezett rendezésében találhatók.

A COLLATE záradék csak a karakter, varchar, szöveg, nchar, nvarcharés ntext adattípusokra alkalmazható.

A COLLATE collate_name használ az SQL Server-rendezés vagy a Windows-rendezés nevére való hivatkozáshoz, amelyet a kifejezésre, oszlopdefinícióra vagy adatbázis-definícióra kell alkalmazni. collation_name csak megadott Windows_collation_name vagy SQL_collation_name lehet, és a paraméternek literális értéket kell tartalmaznia. collation_name nem jelölhető változó vagy kifejezés.

A rendezéseket általában rendezési név azonosítja, kivéve a telepítőben. A Telepítőben ehelyett meg kell adnia a Windows-rendezések gyökérütközési tervezőjét (a rendezési területi beállítást), majd meg kell adnia a kis- és nagybetűkre érzékeny vagy érzéketlen rendezési beállításokat.

A rendszerfüggvény fn_helpcollations végrehajtva lekérheti a Windows-rendezések és az SQL Server-rendezések érvényes rendezési nevének listáját:

SELECT name,
       description
FROM fn_helpcollations();

Az SQL Server csak az alapul szolgáló operációs rendszer által támogatott kódlapokat támogatja. Ha rendezéstől függő műveletet hajt végre, a hivatkozott objektum által használt SQL Server-rendezésnek a számítógépen futó operációs rendszer által támogatott kódlapot kell használnia. Ezek a műveletek a következők lehetnek:

  • Alapértelmezett rendezés megadása egy adatbázishoz az adatbázis létrehozásakor vagy módosításakor.
  • Oszlop rendezése táblázat létrehozásakor vagy módosításakor.
  • Adatbázis visszaállításakor vagy csatolásakor az operációs rendszernek támogatnia kell az adatbázis alapértelmezett rendezését és az karakter, varcharés szöveges oszlopainak vagy paramétereinek rendezését.

Jegyzet

A kódlapfordítások karakteres és varchar adattípusok esetében támogatottak, szöveges adattípus esetében azonban nem. A kódlapfordítások során bekövetkező adatvesztésről nem számolunk be.

Ha a megadott rendezés vagy a hivatkozott objektum által használt rendezés a Windows által nem támogatott kódlapot használ, az SQL Server hibát jelenít meg.

Példák

Egy. Rendezés megadása a SELECT során

Az alábbi példa egy egyszerű táblát hoz létre, és 4 sort szúr be. Ezután a példa két rendezést alkalmaz a tábla adatainak kiválasztásakor, bemutatva, hogy a Chiapas hogyan van másképp rendezve.

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

Az első SELECT lekérdezés eredményei az alábbiak.

Place
-------------
California
Chiapas
Cinco Rios
Colima

Íme a második SELECT lekérdezés eredményei.

Place
-------------
California
Cinco Rios
Colima
Chiapas

Íme a harmadik SELECT lekérdezés eredményei.

Place
-------------
Chiapas
Colima
Cinco Rios
California

B. További példák

További példák a COLLATEhasználatára: CREATE DATABASE és ALTER TABLE.