Sissejuhatus
Vaikimisi võrdlemine on SQL Serveri väga oluline osa, mis määrab, kuidas stringiandmeid võrreldakse ja sorteeritakse, kui neid andmebaasis salvestatakse ja kätte saadakse. Erinevad sorteerimisreeglid võivad tuua erinevaid tulemusi, eriti mitmekeelse teksti puhul. Seetõttu on nende kollektsioonide muutmise oskus suureks abiks andmebaaside kujundamisel ja andmete töötlemisel. Selles artiklis käsitletakse, kuidas SQL Serveris vaikimisi kolleerimist muuta ning toob koodinäiteid.
Mis on võrdlemise reegel?
Võrdlemine määratleb märgistiku, võrdlusreegli ja võrdlemise reegli tähemärkide andmete jaoks SQL Serveris. Iga sorteerimisreegel võib kontrollida:
- Kuidas tähemärgid kodeeritakse (nt UTF-8, ASCII jne)
- Väike tundlikkus (näiteks "A" ja "a" loetakse võrdseteks või mitte võrdseteks)
- Aktsendi tundlikkus (nt kuidas käsitletakse "é" ja "e" vahel)
Võrdluste näited
SQL Serveris koosneb kollatsiooni nimi tavaliselt järgmistest osadest:
{märgikomplekt}_{collation}_{tundlikkus} Näiteks SQL_Latin1_General_CP1_CI_AS, kus:
- SQL_Latin1_General on märgistik
- CP1 on koodileht
- CI tähendab Case Insensitive (Case Insensitive
- AS tähendab Accent Sensitive
Vaata praeguseid andmebaasi võrdlemise reegleid
SQL-lause näeb välja selline:
Tulemus:Chinese_PRC_CI_AS
Muuda vaikimisi võrdlust
SQL Serveris saab vaikimisi kolleerimist muuta järgmistel viisidel:
- Sea andmebaasidele võrdlemisreeglid.
- Sea konkreetsete veergude jaoks võrdlemisreegel.
- Muuda kogu serveri vaikimisi kolleerimisreegleid.
1. Seadista andmebaasi jaoks võrdlemisreeglid
Kui vajad uue andmebaasi loomisel vaikimisi kolleerimist, saad kasutada järgmist SQL-lauset:
Kui andmebaas eksisteerib ja vajad vaikimisi kolleerimist muutmist, saad kasutada järgmist käsku:
See muudab MyDatabase andmebaasi vaikimisi võrdlemist.
2. Seadista sorteerimisreeglid konkreetsete veergude jaoks
Mõnel juhul võid soovida kasutada erinevaid võrdlusreegleid konkreetse veeru jaoks. Sellisel juhul saad kolleerimise määrata tabeli loomisel:
Ülaltoodud kood loob tabeli nimega MyTable, kus nime veerg kasutab tähe-tundlikku kolleerimist.
3. Muuda vaikimisi kolleerimisreegleid kogu serveri jaoks
Serveri vaikimisi võrdlemise muutmine on tundlik operatsioon. Enne seda veendu, et mõistad, millist mõju see võib avaldada. Kasuta järgmist käsku, et muuta serveri vaikimisi võrdlemist:
Pärast serveri vaikimisi võrdluse muutmist pead SQL Serveri instantsi taaskäivitama, et muudatused jõustuksid.
Võrdluste seisundi graafik
Järgmine olekudiagramm näitab SQL Serveri kolleerimise erinevaid olekuid ja muutusi:
Näidisrakendus
Siin on mõned rakendusstsenaariumid, mis aitavad mõista võrdlusreeglite tähtsust andmebaasi kujundamisel:
- Mitmekeelne tugi: Mitmekeelsetes rakendustes võib olla vaja seadistada võrdlus konkreetsetele keeltele. Näiteks võib hispaania keeles tähte "ñ" käsitleda erinevate sorteerimisreeglite alusel.
- Kasutaja määratletud andmed: Kasutaja sisestatud andmed võivad sisaldada erinevaid suurtähti ja aktsentmärke. Sellisel juhul tagab sobiv võrdlus, et kasutajad saavad soovitud tulemused otsimisel ja võrdlemisel.
- Andmete migratsioon: Kui migreerite andmeid ühest süsteemist teise, on oluline tagada, et sihtandmebaasi võrdlemine oleks kooskõlas lähteandmebaasiga, et vältida andmete ebakõlasid.
Järeldus
SQL Serveris on vaikimisi kolleerimisreeglite korrektne seadistamine ja muutmine andmebaasi disaini kriitiline osa. See mõjutab mitte ainult andmete salvestamist ja otsingut, vaid mõjutab otseselt ka rakenduse kasutajakogemust. Selle artikli koodinäidete ja detailsete selgituste kaudu loodan, et sul on sügavam arusaam kolleerimisreeglite kontseptsioonist ja nende muutmisest. Enne nende muudatuste rakendamist veenduge, et varundage ja testige need vastavalt, et tagada oma andmete terviklikkus ja turvalisus.
Viide:Hüperlingi sisselogimine on nähtav. |