SQL Server рассматривает неуникальные поля с символами Юникода как дубликаты, в то время как они не дублируются

SQL Server обрабатывает следующие символы как одинаковые, хотя они являются разными символами Unicode. Когда я помещаю уникальный некластеризованный индекс в столбец, содержащий эти символы, SQL Server не позволяет мне (выдает ошибки, говорящие о наличии дублирующих ключей, хотя они не являются дублирующимися). Я уже использую nvarchar для поддержки символов Unicode.

Сортировка по умолчанию SQL_Latin1_General_CP1_CI_AS (Мне нужно поддерживать персидские / арабские символы вместе со всеми латинскими / индийскими / китайскими / японскими символами (Unicode))

// Some characters are unseen so please copy and paste the whole
// code area in a Unicode supported text editor.
ٔ
ؐ
ۡ
ۚ
ٝ
ﷲ
۠
ݐ
ݘ
ۖ
ۻ
ݝ
ݡ
ۗ
ﮎ
ػ
ﮒ
ﮪ
ݻ

Ниже приведен оператор SQL Server CREATE без уникальной индексации (пришлось отключить уникальную индексацию на TheWord поле, поскольку, как упоминалось выше, SQL Server обрабатывает все вышеуказанные символы как один и тот же символ (или, может быть, я что-то здесь упускаю?)).

CREATE TABLE [peplamb].[Words](
    [WordId] [bigint] IDENTITY(1,1) NOT NULL,
    [TheWord] [nvarchar](128) NOT NULL,
    [SourceId] [int] NOT NULL,
    [DateModified] [datetime] NOT NULL,
    [DateCreated] [datetime] NOT NULL,
 CONSTRAINT [PK_Words] PRIMARY KEY CLUSTERED 
(
    [WordId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

Я что-то здесь упускаю?

Любая помощь с благодарностью.

0 ответов

Другие вопросы по тегам