При попытке создать базу данных, запускающую скрипт, сгенерированный Visual Studio (Entity Framework, «Generate Database From Model ...»), я столкнулся с ошибкой с Primary Ключ.SQL Server, по-видимому, неправильно вычисляет длину ключа
Команда дает мне вопрос является
ALTER TABLE tablename
ADD CONSTRAINT constraintname
PRIMARY KEY NONCLUSTERED (col1, col2 ASC);
Ошибка я получаю
Index constraintname не был создан. Индекс имеет длину ключа 1024 байта. Максимальная допустимая длина ключа - 900 байт.
Таблица создается с
CREATE TABLE tablename (
col1 nchar(256) NOT NULL,
col2 nchar(256) NOT NULL
);
, который смотрит на меня, чтобы быть 512 байт, а не 1024.
Что вызывает SQL Server, чтобы считать это 1024, и как я могу это исправить проблема?
Ваши столбцы содержат до 512 ** символов ** - не байт. В зависимости от набора символов, который может дать 1500 байт (например, с UTF-8). –
'nchar (256)' довольно необычно в любом случае. Все ли значения фиксированной ширины 256 символов или максимальная длина? –
@MartinSmith Это фиксированная длина. Каждый из них служит идентификатором других таблиц. Я не тот, кто принял решение о нчаре (256); он, по-видимому, уже используется (хотя я не вижу, как это будет работать). – yoozer8