Ievads
Noklusējuma salīdzināšana ir ļoti svarīga SQL Server daļa, kas nosaka, kā virknes dati tiek salīdzināti un sakārtoti, kad tie tiek glabāti un izgūti datu bāzē. Dažādi kārtošanas noteikumi var novest pie atšķirīgiem rezultātiem, it īpaši, ja strādā ar daudzvalodu tekstu. Tāpēc, zinot, kā modificēt šos salīdzinājumus, būs ļoti noderīgi, izstrādājot datu bāzes un apstrādājot datus. Šajā rakstā tiks aplūkots, kā modificēt noklusējuma salīdzinājumu SQL serverī, un sniegti koda piemēri.
Kas ir salīdzināšanas noteikums?
Salīdzināšana definē rakstzīmju kopu, salīdzināšanas kārtulu un rakstzīmju datu salīdzināšanas kārtulu SQL serverī. Katra kārtošanas kārtula var kontrolēt:
- Rakstzīmju kodēšana (piemēram, UTF-8, ASCII utt.)
- Reģistrjutība (piemēram, "A" un "a" tiek uzskatīti par vienādiem vai nevienādiem)
- Akcenta jutība (piemēram, kā tiek apstrādāts "é" un "e")
Salīdzinājumu piemēri
SQL Server salīdzinājuma nosaukums parasti sastāv no šādām daļām:
{rakstzīmju kopa}_{salīdzināšana}_{jutīgums} Piemēram, SQL_Latin1_General_CP1_CI_AS, kur:
- SQL_Latin1_General ir rakstzīmju kopa
- CP1 ir kodu lapa
- CI apzīmē reģistru nejutīgu
- AS apzīmē Accent Sensitive
Pašreizējo datu bāzes salīdzināšanas kārtulu skatīšana
SQL paziņojums izskatās šādi:
Rezultātu:Chinese_PRC_CI_AS
Noklusējuma sakārtojuma modificēšana
Programmā SQL Server noklusējuma salīdzinājumu var modificēt šādos veidos:
- Iestatiet datu bāzu salīdzināšanas kārtulas.
- Iestatiet salīdzināšanas kārtulu noteiktām kolonnām.
- Modificējiet noklusējuma salīdzināšanas kārtulas visam serverim.
1. Datu bāzes salīdzināšanas kārtulu iestatīšana
Ja, veidojot jaunu datu bāzi, ir nepieciešams iestatīt noklusējuma salīdzināšanu, varat izmantot šādu SQL paziņojumu:
Ja datu bāze pastāv un jums ir jāmodificē noklusējuma salīdzinājums, varat izmantot šādu komandu:
Tādējādi tiek modificēta datu bāzes MyDatabase noklusējuma kārtošana.
2. Kārtošanas kārtulu iestatīšana konkrētām kolonnām
Dažos gadījumos, iespējams, vēlēsities izmantot atšķirīgas salīdzināšanas kārtulas konkrētai kolonnai. Šādā gadījumā varat norādīt salīdzinājumu, veidojot tabulu:
Iepriekš minētais kods izveido tabulu ar nosaukumu MyTable, kur kolonnā Nosaukums tiek izmantota reģistrjutīga salīdzināšana.
3. Modificējiet noklusējuma salīdzināšanas kārtulas visam serverim
Servera noklusējuma salīdzināšanas modificēšana ir sensitīva darbība. Pirms to darāt, pārliecinieties, ka saprotat, kāda ietekme tam var būt. Izmantojiet šo komandu, lai modificētu servera noklusējuma sakārtošanu:
Pēc servera noklusējuma sakārtošanas modificēšanas ir jārestartē SQL Server instance, lai izmaiņas stātos spēkā.
Salīdzinājumu statusa grafiks
Tālāk esošajā statusa diagrammā ir parādīti dažādi SQL Server salīdzināšanas stāvokļi un izmaiņas:
Pieteikuma paraugs
Tālāk ir norādīti daži pielietojuma scenāriji, kas palīdzēs izprast salīdzināšanas kārtulu nozīmi datu bāzes noformējumā.
- Daudzvalodu atbalsts: daudzvalodu lietotnēs, iespējams, būs jāiestata salīdzināšana noteiktām valodām. Piemēram, burts "ñ" spāņu valodā var tikt apstrādāts atšķirīgi saskaņā ar dažādiem šķirošanas noteikumiem.
- Lietotāja definētie dati: lietotāja ievadītie dati var saturēt dažādus lielos burtus un akcenta zīmes. Šajā gadījumā piemērota salīdzināšana var nodrošināt, ka lietotāji saņem vēlamos rezultātus, meklējot un salīdzinot.
- Datu migrācija: migrējot datus no vienas sistēmas uz citu, ir svarīgi nodrošināt, lai mērķa datu bāzes salīdzinājums atbilstu avota datu bāzei, lai izvairītos no datu neatbilstības.
Secinājums
SQL Server noklusējuma salīdzināšanas kārtulu pareiza konfigurēšana un modificēšana ir būtiska datu bāzes noformējuma daļa. Tas ietekmē ne tikai datu glabāšanu un izgūšanu, bet arī tieši ietekmē lietojumprogrammas lietotāja pieredzi. Izmantojot koda piemērus un detalizētus paskaidrojumus šajā rakstā, es ceru, ka jums ir dziļāka izpratne par salīdzināšanas noteikumu jēdzienu un to, kā tos modificēt. Pirms šo izmaiņu ieviešanas noteikti dublējiet un pārbaudiet tās, lai nodrošinātu savu datu integritāti un drošību.
Atsauce:Hipersaites pieteikšanās ir redzama. |