SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage') Íme a lekérdezés eredményei:
936 kínai egyszerűsített GBK 950 kínai hagyományos BIG5 437 amerikai/kanadai angol 932 japán 949 Korean 866-os orosz 65001 unicode UFT-8
Az SQL SERVER 2008 telepítésekor azért, mert mi választottuk az alapértelmezett telepítést, mi hoztuk létreAdatbázis esetén a szerver által kiválasztott alapértelmezett rendezési szabály egy SQL_Latin1_General_CP1_CI_AS összeállítási szabály, így amikor szöveget illesztünk az adattáblába, az nem jelenik meg normálisan, mindannyian "? helyette.
Ezután, amikor adatbázist hozunk létre, kézzel kell megadnunk egy összeállítási szabályt, amelyet Chinese_PRC_CI_AS összeállításként választhatunk, ahogy az alábbi ábrán látható
Rendezési szabályok:
A SQLSEVER2005-ben használt rendezési szabályok SQL_Latin1_General_CP1_CI_AS, nem pedig a három besorolási szabály, amelyek helyesen tudják megjeleníteni a egyszerűsített kínai karaktereket:
Chinese_PRC_BIN,
Chinese_PRC_CI_AS,
Chinese_PRC_CS_AS。
Nézze meg az MS összeállítási magyarázatát: Collation Rules Control Physical Storage of Strings in SQL Server 2005. Az összeállítási szabályok meghatározzák az egyes karaktereket rejlő bitmintát, valamint a karakterhasználat tárolására és összehasonlítására szolgáló szabályokat.
Vagyis az SQLSERVER-ben a jellemvonás valójában a karakterkódolás.
Ha a következő utasítást futtatod a lekérdezési analizátorban, megkaphatod az SQL SERVER által támogatott összes összeállítási szabályt.
Válassz * -től ::fn_helpcollations()
A kollektálás neve két részből áll, az első rész a jelkészletre utal, amelyet ez a összeállítás támogat.
Például: Chinese_PRC_CS_AI_WS
Az első fele a UNICODE karakterkészletre utal, Chinese_PRC_refers pedig az egyszerűsített kínai UNICODE karakter rendezési szabályaira.
A szokás második fele a toldal jelentése:
_BIN Bináris rendezés
_CI(CS) Hogy az eset-érzékeny, a CI nem érzékeny, és a CS érzékeny
_AI (AS) Az, hogy az akcentusokat kell megkülönböztetni, az MI nem tesz különbséget, az AS megkülönbözteti
_KI(KS) Hogy a KI megkülönbözteti-e a pzevenímák típusait, a KI nem különbözteti meg a különbséget, a KS megkülönbözteti
_WI(WS) nem szélességi megkülönböztetés, a WS nem megkülönböztetett
Kis- és nagybetűs érzékeny: Válaszd ki ezt az opciót, ha összehasonlításokat szeretnél, hogy a nagy- és kisbetűk egyenlőnek tekintsék.
Különbségtétel az akcentusok között: Válaszd ki ezt az opciót, ha azt szeretnéd, hogy az akcentusos és a hangsúly nélküli betűk egyenlőnek tekintsék. Ha ezt az opciót választod, az összehasonlítás a különböző akcentusú betűket is egyenlőnek tekinti.
Megkülönböztetni a Kana-t: Válaszd ezt az opciót, ha azt szeretnéd, hogy a Katakana és a Hiraka Day szótagokat egyenlőnek kezelje.
Szélesség differenciálás: Válaszd ki ezt az opciót, ha azt szeretnéd, hogy az összehasonlítás a fél szélességű és a teljes szélességű karaktereket egyenlőnek kezelje.
Az SQLSERVER összetételi szabályainak megértése után a fenti problémára a következő következtetések vonhatók le:
1. Az SQLSERVER felhasználói adatbázisának módosítása a kínai jelkészletek összeállításának támogatására.
2: Ha kínai karakterek megjelenítik??, de nem akarjuk megváltoztatni az adatbázis rendezési szabályait, és helyesen szeretnénk megjeleníteni a kínai karaktereket, ajánlott az összes Unicode típusmezőt használni a tervezésben, vagyis az N-vel kezdődő mezőtípusokat, mint például nChar, nVarchar, hogy helyesen jelenítse meg a kínai karaktereket.
3: Ha nem akarod megváltoztatni a kollektációs szabályt vagy a mezőtípust, akkor az SQL utasítást is meg kell változtatnod, és minden kínai karakterhez N-t kell hozzáadnod előre, hogy helyesen jelenítsd meg. Kérjük, tekintse meg az alábbi két állítást a konkrét módszerekhez:
Lekérdezés: válassz * tb_Cust helyéről, ahol FirstName=N'Wang'
Insert: tb_Cust(Keresztnév, Vezetéknév, Nem) értékek (N'Wang',N'Xinhao',N'Male')
Megjegyzés: A jövőben a szerverszintű összeállítási szabály módosítása SQLSERVER2000 után nehezebb lesz, és szükséges a fő adatbázis újjáépítése.
Jelenleg már létrehozott adatbázisok esetén az adatbázis tulajdonságok ablakának opciós oldalán is módosíthatjuk a kollektálási módszert, így szöveg beillesztésekor nem lesznek hibaüzenetek!
|