Som standard använder varje kolumn i en SQL Server-databas den sortering som har angetts på databasnivå. Och som standard tas databassorteringen från serversorteringen. Dessa sorteringsinställningar kan dock åsidosättas, både på databasnivå och kolumnnivå genom att uttryckligen ställa in sorteringen på den nivån.
Den här sidan visar hur man anger sorteringen av en kolumn. Du kan ställa in sorteringen genom att lägga till T-SQL COLLATE
sats till CREATE TABLE
och ALTER TABLE
uttalanden. När du använder dessa påståenden definierar du kolumnen och dess egenskaper, inklusive eventuella sorteringsinställningar. COLLATE
klausul är valfri så om du inte inkluderar den kommer kolumnen helt enkelt att använda standardsorteringen av databasen.
Ställ in sorteringen
Här är ett exempel på hur du anger sorteringen när du skapar en tabell:
CREATE TABLE Tasks ( TaskId int IDENTITY(1,1) NOT NULL PRIMARY KEY, TaskName nvarchar(255) COLLATE French_CI_AI NOT NULL );
Detta skapar en tabell som heter Tasks
med två kolumner. Vi ställer in sorteringen av den andra kolumnen (TaskName
) till French_CI_AI
. Om vi inte gjorde det skulle den ha använt standarddatabassorteringen.
Ändra sorteringen
I nästa exempel ändrar jag kolumnens sortering till Modern_Spanish_CI_AI_WS
:
ALTER TABLE Tasks ALTER COLUMN TaskName nvarchar(255) COLLATE Modern_Spanish_CI_AI_WS NOT NULL GO
Observera att du inte kan ändra sorteringen av en kolumn som refereras av något av följande:
- En beräknad kolumn
- Ett index
- Distributionsstatistik
- En
CHECK
begränsning - En
FOREIGN KEY
begränsning
Kontrollera sorteringen
Om du använder SSMS kan du kontrollera sorteringen av valfri kolumn genom att högerklicka på den kolumnen i objektbläddraren och välja Properties
.
I Transact-SQL finns det ett par olika sätt att returnera en kolumns sammanställning. Så här kontrollerar du sorteringen av en kolumn med T-SQL.