Hvordan du bruker SQL Server Collate -kommandoen

Hvordan du bruker SQL Server Collate -kommandoen
Denne guiden vil dekke det grunnleggende ved å jobbe med SQL Server Collate Command. Før vi kommer dit, hva er en SQL -serversamling?

Hva er SQL Server -samlingen?

SQL Server -samlingen refererer til et sett med regler som styrer hvordan du sorterer og sammenligner karakterdata i en database. SQL Server gir et bredt spekter av kollasjoner for håndtering av karakterdata. Disse samlingen kan håndtere data med motstridende språk og regioner, slik at en database kan være kompatible med applikasjoner over hele verden.

SQL Server -samlingenivåer

I SQL -serveren er det tre hovednivåer der du kan definere samlingen:

  1. SQL Server -forekomstnivå
  2. Databasenivå
  3. Kolonnivå

Legg merke til at et samlet navn kan enten være et Windows-samlingen eller SQL Server-leverte samlede navn.

Du kan spesifisere samlingen Type når du oppretter en database. Hvis ikke spesifisert når du oppretter en database, vil SQL Server standard være samlingen som brukes av SQL Server -forekomsten.

Tilsvarende, hvis du ikke definerer samlingen når du oppretter en kolonne, vil SQL Server standard være samlingen som brukes i den databasen.

SQL Server -forekomstnivå

Du kan angi din foretrukne kollisjon for SQL Server -forekomsten under installasjonen. Hvis du allerede har SQL -serveren allerede installert, kan du bruke installasjonssenterets veiviser til å omdefinere samlingen Type.

For å se den nåværende samlingen for SQL Server -forekomsten din, åpner SQL Server Management Studio.

Høyreklikk på SQL Server-forekomsten og velg Egenskaper-alternativet:

Velg Generalens fan i Venstres -menyen i Egenskaper i Vinduet. Dette vil vise den generelle informasjonen om SQL Server -forekomsten din, inkludert standardsamlingstypen:

I vårt eksempel er standardsamlingen satt til SQL_LATIN1_GENERAL_CP1_C1_AS. Dette er en SQL -serversamling i stedet for en Windows -samlingen, som indikert av SQL_ -prefikset.

Den andre delen inneholder navnet på samlingen, i dette tilfellet latin1_general_cp_as. Verdien CI indikerer at samlingen er ufølsom, mens det er aksentfølsom.

For å få en mer detaljert beskrivelse av SQL Server -standardsamlingen, bruk SP_Helpsort -prosedyren som vist:

Exec sp_helpsort;

Prosedyren skal returnere informasjon som vist:

Server standardsamling
-----------------------------------------------------------------------------------------------------------------
Latin1-general, case-ufølsom, aksentfølsom, kanatype-ufølsom, bredde-ufølsom for Unicode-data, SQL Server Sort Order 52 på kode Side 1252 for ikke-unicode-data

Databasenivåsamling

Vi kan definere samlingen på databasenivå. Som nevnt, med mindre eksplisitt spesifisert, vil en database arve samlingen av SQL Server -forekomsten.

For å se samlingen av en database i SQL Server Management Studio (SSMS), høyreklikk på måldatabasen og åpne Egenskaper-vinduet:

Velg Generalens faner i Egenskaper og naviger til vedlikeholdsdelen. Du bør se databasesamlingen oppført:

I vårt tilfelle arver databasen den samme samlingen som SQL Server -forekomsten.

Angi databasesamling
For å angi ønsket kollasjon under databasen, kan du bruke spørringen som vist nedenfor:

Opprett databaseprøve_database
COLLATE SQL_LATIN1_GENERAL_CP1_CS_AS;

I spørringen over oppretter vi en database med samlingen SQL_LATIN1_GENERAL_CP1_CS_AS. Det ligner på SQL_LATIN1_GENERAL_CI_AI, bortsett fra at det er tilfelle og aksentfølsom, som indikert av CS og som i samlingenavnet:

Sett samlingen i en eksisterende database
SQL Server lar deg endre samlingen etter oppretting ved hjelp av Alter Database -kommandoen.

For eksempel endrer følgende spørsmål samlingen av databasen fra SQL_LATIN1_GENERAL_CP1_CS_AS til SQL_SLOVAK_CP1250_CS_AS:

Bruk prøve_database;
Alter Database Sample_Database Colate SQL_SLOVAK_CP1250_CS_AS;

Før du endrer samlingen av databasen, må du forsikre deg om at alle tilkoblinger til databasen er lukket. Ellers vil spørringen mislykkes.

SQL Server viser de støttede samlingen
For å se de støttede samlingen for SQL Server -versjonen din, bruk spørringen som vist nedenfor:

Velg navn, beskrivelse fra SYS.fn_helpcollations ();

Hvis du bruker SQL Server 2019, har vi gitt en liste over de støttede samlingen. Last ned filen i ressursen nedenfor:

Column Level Collation

I de fleste tilfeller vil du ønske at en karakterkolonne skal arve en lignende samlingen som databasen. Du kan imidlertid spesifisere samlingen for en kolonne som eksplisitt.

Husk at du bare kan definere en kolonnesamling hvis kolonnen er av typen røye som:

  1. VARCHAR
  2. Nvarchar
  3. Røye
  4. Ntext
  5. TEKST

For å angi en kolonne ved hjelp av T-SQL, bruk eksemplet spørring som vist:

Lag tabellinfo (
id int,
Tekst_ varchar (50) SKJENTE SQL_EBCDIC280_CP1_CS_AS
);

For å se samlingen av en kolonne, kan du bruke SP_Help -prosedyren som vist nedenfor:

Exec sp_help info;

Kommandoen skal returnere informasjon om kolonnen, inkludert samlingen som:

Konklusjon

I denne artikkelen undersøkte vi konseptet med SQL Server -kollasjoner, hva de er og hvordan vi kan se eller endre samlingen på forskjellige nivåer, for eksempel SQL Server -forekomstnivå, databasenivå og kolonnivå. Vi håper du fant denne artikkelen nyttig. Sjekk ut de andre Linux -hint -artiklene for flere tips og opplæringsprogrammer.