ВИБРАТИ COLLATIONPROPERTY ('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage') Ось результати запиту:
936 Chinese Simplified GBK 950 Китайський традиційний BIG5 437 американсько/канадська англійська 932 Японія 949 Корея 866 Російська 65001 юнікод 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。
Ознайомтеся з поясненням Microsoft щодо колювання: Контроль правил колації фізичного зберігання рядків у SQL Server 2005. Правила зрівняння визначають бітовий патерн, що представляє кожен символ, а також правила зберігання та порівняння використання символів.
Тобто, у 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 не диференціюється
Ремінер: Виберіть цю опцію, якщо хочете порівняння, щоб великі та малі літери вважалися нерівними.
Розрізняйте акценти: виберіть цю опцію, якщо хочете порівняння, щоб літери з акцентом і без наголосу вважалися нерівними. Якщо вибрати цю опцію, порівняння також розглядає літери з різними акцентами як нерівні.
Розрізняйте Кану: Виберіть цей варіант, якщо хочете порівняння, щоб склади Катакани та Дня Хірака вважалися нерівними.
Диференціація ширини: Виберіть цю опцію, якщо хочете, щоб порівняння вважали символи півширини та повноширини нерівними.
Після розуміння правил зрівняння в SQLSERVER можна зробити такі висновки щодо наведеної вище задачі:
1. Модифікувати базу даних користувачів SQLSERVER для підтримки збірки китайських символів.
2: Для відображення китайських ієрогліфів??, але якщо ви не хочете змінювати правила сортування в базі даних і хочете правильно відображати китайські ієрогліфи, рекомендується використовувати всі поля типу Unicode у дизайні, тобто ті типи, що починаються на N, такі як nChar, nVarchar, щоб правильно відображати китайські ієрогліфи.
3: Якщо ви не хочете змінювати правило сортування або тип поля, потрібно змінити SQL-оператор, а для всіх китайських ієрогліфів додати N спереду, щоб його правильно відобразити. Будь ласка, зверніться до наступних двох тверджень для конкретних методів:
Запит: вибрати * з tb_Cust, де FirstName=N'Wang'
Вставити: вставити значення tb_Cust(Ім'я, Прізвище, Стать)(N'Wang',N'Xinhao',N'Male')
Примітка: У майбутньому буде складніше змінювати правило консоліації серверного рівня після SQLSERVER2000, і необхідно перебудувати головну базу даних.
Наразі для вже створених баз даних ми також можемо змінити метод збірки на сторінці опцій у вікні властивостей бази даних, щоб при вставці тексту в таблицю даних не було повідомлень про помилки!
|