Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 13630|Válasz: 0

[Tippek] SQL utasítások megtekintése SQLserver kódolási formátumban és Sqlserver kollációs szabályokban

[Linket másol]
Közzétéve 2016. 10. 27. 12:50:16 | | | |
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!





Előző:Az SQL határozza meg, hogy egy oszlop tartalmaz-e kínai vagy angol karaktereket
Következő:Az SQL határozza meg, hogy egy oszlop tartalmaz-e kínai vagy angol karaktereket
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com