По подразбиране всяка колона в база данни на SQL Server използва съпоставянето, което е посочено на ниво база данни. И по подразбиране съпоставянето на базата данни се взема от съпоставянето на сървъра. Въпреки това, тези настройки за съпоставяне могат да бъдат отменени както на ниво база данни, така и на ниво колона, като изрично зададете съпоставянето на това ниво.
Тази страница демонстрира как да посочите сортирането на колона. Можете да зададете сортирането, като добавите T-SQL COLLATE
клауза към CREATE TABLE
и ALTER TABLE
изявления. Когато използвате тези изрази, вие дефинирате колоната и нейните свойства, включително всички настройки за съпоставяне. COLLATE
Клаузата не е задължителна, така че ако не я включите, колоната просто ще използва съпоставянето по подразбиране на базата данни.
Задайте сравняването
Ето пример за определяне на съпоставянето при създаване на таблица:
CREATE TABLE Tasks ( TaskId int IDENTITY(1,1) NOT NULL PRIMARY KEY, TaskName nvarchar(255) COLLATE French_CI_AI NOT NULL );
Това създава таблица, наречена Tasks
с две колони. Задаваме съпоставянето на втората колона (TaskName
) до French_CI_AI
. Ако не го направихме, щеше да използва съпоставянето на базата данни по подразбиране.
Промяна на съпоставянето
В този следващ пример променям съпоставянето на колоната на Modern_Spanish_CI_AI_WS
:
ALTER TABLE Tasks ALTER COLUMN TaskName nvarchar(255) COLLATE Modern_Spanish_CI_AI_WS NOT NULL GO
Имайте предвид, че не можете да промените сортирането на колона, която се позовава на някое от следните:
- Изчислена колона
- Индекс
- Статистика на разпространението
CHECK
ограничениеFOREIGN KEY
ограничение
Проверете сравняването
Ако използвате SSMS, можете да проверите сортирането на всяка колона, като щракнете с десния бутон върху тази колона в браузъра на обекти и изберете Properties
.
В Transact-SQL има няколко различни начина за връщане на съпоставянето на колона. Ето как да проверите сортирането на колона с помощта на T-SQL.