Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 13630|Απάντηση: 0

[Συμβουλές] Προβολή προτάσεων SQL σε μορφή κωδικοποίησης SQLserver και κανόνες ταξινόμησης Sqlserver

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 27/10/2016 12:50:16 μ.μ. | | | |
SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage')
Ακολουθούν τα αποτελέσματα του ερωτήματος:
936 Απλοποιημένα Κινεζικά GBK
950 Κινέζικα Παραδοσιακά BIG5
437 Αγγλικά ΗΠΑ/Καναδά
932 Ιαπωνικά
949 Κορεάτικα
866 Ρωσικά
65001 unicode UFT-8




Κατά την εγκατάσταση του SQL SERVER 2008, επειδή επιλέξαμε την προεπιλεγμένη εγκατάσταση, τη δημιουργήσαμεΚατά τη βάση δεδομένων, ο προεπιλεγμένος κανόνας ταξινόμησης που επιλέγεται από τον διακομιστή είναι ένας κανόνας ταξινόμησης SQL_Latin1_General_CP1_CI_AS, έτσι ώστε κατά την εισαγωγή κειμένου στον πίνακα δεδομένων, να μην εμφανίζεται κανονικά, όλα με "? Αντ 'αυτού.
Στη συνέχεια, όταν δημιουργούμε μια βάση δεδομένων, πρέπει να καθορίσουμε χειροκίνητα έναν κανόνα ταξινόμησης, ο οποίος μπορεί να επιλεγεί ως Chinese_PRC_CI_AS συρραφή, όπως φαίνεται στο παρακάτω σχήμα





Κανόνες ταξινόμησης:
Οι κανόνες ταξινόμησης που χρησιμοποιούνται σε SQLSEVER2005 είναι SQL_Latin1_General_CP1_CI_AS και όχι οι τρεις κανόνες ταξινόμησης που μπορούν να εμφανίσουν σωστά απλοποιημένους κινεζικούς χαρακτήρες:
Chinese_PRC_BIN,
Chinese_PRC_CI_AS,
Chinese_PRC_CS_AS。
Ρίξτε μια ματιά στην εξήγηση του MS για τη συρραφή: Οι κανόνες ταξινόμησης ελέγχουν τη φυσική αποθήκευση συμβολοσειρών στον SQL Server 2005. Οι κανόνες συρραφής καθορίζουν το μοτίβο bit που αντιπροσωπεύει κάθε χαρακτήρα και τους κανόνες για την αποθήκευση και τη σύγκριση της χρήσης χαρακτήρων.
Δηλαδή, στον SQLSERVER, η ταξινόμηση είναι στην πραγματικότητα η κωδικοποίηση χαρακτήρων.
Εκτελώντας την ακόλουθη πρόταση στον αναλυτή ερωτημάτων, μπορείτε να λάβετε όλους τους κανόνες ταξινόμησης που υποστηρίζονται από τον SQL SERVER.
επιλέξτε * από ::fn_helpcollations()
Το όνομα ταξινόμησης αποτελείται από δύο μέρη, το πρώτο μέρος αναφέρεται στο σύνολο χαρακτήρων που υποστηρίζεται από αυτήν τη ταξινόμηση.
Για παράδειγμα: Chinese_PRC_CS_AI_WS
Το πρώτο μισό αναφέρεται στο σύνολο χαρακτήρων UNICODE και Chinese_PRC_refers στους κανόνες ταξινόμησης για τον απλοποιημένο κινεζικό χαρακτήρα UNICODE.
Το δεύτερο μισό της ταξινόμησης είναι η σημασία του επιθέματος:
_BIN Δυαδική ταξινόμηση
_CI(CS) Είτε κάνει διάκριση πεζών-κεφαλαίων, το CI δεν είναι ευαίσθητο και το CS είναι ευαίσθητο
_AI (AS) Είτε πρέπει να γίνει διάκριση μεταξύ τόνων, η τεχνητή νοημοσύνη δεν κάνει διάκριση, η AS
_KI(KS) Είτε πρέπει να γίνει διάκριση μεταξύ των τύπων ψευδωνύμων, το KI όχι, το KS
Το _WI(WS) δεν διακρίνεται κατά πλάτος, το WS δεν διαφοροποιείται
Διάκριση πεζών-κεφαλαίων: Ενεργοποιήστε αυτήν την επιλογή εάν θέλετε οι συγκρίσεις να αντιμετωπίζουν τα κεφαλαία και τα πεζά γράμματα ως άνισα.
Διάκριση μεταξύ τόνων: Ενεργοποιήστε αυτήν την επιλογή εάν θέλετε οι συγκρίσεις να αντιμετωπίζουν τα τονισμένα και τα άτονα γράμματα ως άνισα. Εάν κάνετε αυτήν την επιλογή, η σύγκριση αντιμετωπίζει επίσης τα γράμματα με διαφορετικούς τόνους ως άνισα.
Διάκριση Kana: Επιλέξτε αυτήν την επιλογή εάν θέλετε η σύγκριση να αντιμετωπίζει τις συλλαβές Katakana και Hiraka Day ως άνισες.
Διαφοροποίηση πλάτους: Ενεργοποιήστε αυτήν την επιλογή εάν θέλετε η σύγκριση να αντιμετωπίζει τους χαρακτήρες μισού πλάτους και πλήρους πλάτους ως άνισους.
Μετά την κατανόηση των κανόνων ταξινόμησης στον SQLSERVER, μπορούν να εξαχθούν τα ακόλουθα συμπεράσματα για το παραπάνω πρόβλημα:
1. Τροποποιήστε τη βάση δεδομένων χρηστών του SQLSERVER για να υποστηρίξετε τη συρραφή συνόλων κινεζικών χαρακτήρων.
2: Για εμφάνιση κινεζικών χαρακτήρων??, αλλά δεν θέλετε να αλλάξετε τους κανόνες ταξινόμησης στη βάση δεδομένων και θέλετε να εμφανίσετε σωστά τους κινεζικούς χαρακτήρες, συνιστάται η χρήση όλων των πεδίων τύπου Unicode στο σχέδιο, δηλαδή εκείνων των τύπων πεδίων που ξεκινούν με N, όπως nChar, nVarchar, για να εμφανίζονται σωστά οι κινεζικοί χαρακτήρες.
3: Εάν δεν θέλετε να αλλάξετε τον κανόνα ταξινόμησης ή να αλλάξετε τον τύπο πεδίου, τότε πρέπει να αλλάξετε τη δήλωση SQL και για όλους τους κινεζικούς χαρακτήρες, πρέπει επίσης να προσθέσετε το N μπροστά για να το εμφανίσετε σωστά. Ανατρέξτε στις ακόλουθες δύο δηλώσεις για συγκεκριμένες μεθόδους:
Ερώτημα: επιλέξτε * από tb_Cust όπου FirstName=N'Wang'
Εισαγωγή: εισαγωγή τιμών tb_Cust(Όνομα,Επώνυμο,Φύλο) (N'Wang',N'Xinhao',N'Αρσενικό')
Σημείωση: Για το μέλλον, θα είναι πιο ενοχλητικό να τροποποιήσετε τον κανόνα ταξινόμησης σε επίπεδο διακομιστή μετά από SQLSERVER2000 και είναι απαραίτητο να δημιουργήσετε ξανά την κύρια βάση δεδομένων.

Επί του παρόντος, για βάσεις δεδομένων που έχουν ήδη δημιουργηθεί, μπορούμε επίσης να αλλάξουμε τη μέθοδο ταξινόμησης στη σελίδα επιλογών στο παράθυρο ιδιοτήτων της βάσης δεδομένων, έτσι ώστε κατά την εισαγωγή κειμένου στον πίνακα δεδομένων, να μην υπάρχουν μηνύματα σφάλματος!





Προηγούμενος:Η SQL καθορίζει εάν μια στήλη περιέχει κινεζικούς ή αγγλικούς χαρακτήρες
Επόμενος:Η SQL καθορίζει εάν μια στήλη περιέχει κινεζικούς ή αγγλικούς χαρακτήρες
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com