Я только что попробовал это и получил полезное сообщение о том, что
Столбец «Имя пользователя» в таблице «Пользователи» имеет тип, недопустимый для использования в качестве ключевого столбца в индексе.
Имя пользователя — это столбец nvarchar(max).
Я только что попробовал это и получил полезное сообщение о том, что
Столбец «Имя пользователя» в таблице «Пользователи» имеет тип, недопустимый для использования в качестве ключевого столбца в индексе.
Имя пользователя — это столбец nvarchar(max).
Вы не можете добавить индекс к столбцу nvarchar(max) или varchar(max), но он может быть частью индекса.
Вы можете включить его в индекс, но тогда этот индекс необходимо создать/перестроить в автономном режиме.
Исходя из имени вашего столбца «Имя пользователя», я бы изменил тип столбца на что-то меньшее, например nvarchar (50). Тип данных nvarchar(max) может хранить до 4 ГБ текста и используется для более полного хранения текста (в этом случае вы должны настроить полнотекстовый поиск).
nvarchar(max)
? Почему вы используетеnvarchar(max)
для имени пользователя? Как вы думаете, кому-нибудь нужен миллиард символов в имени пользователя? Вероятно,nvarchar(50), (64) or (255)
будет достаточно.(320)
, если он будет представлять адрес электронной почты. И мне интересно, действительно ли здесь требуется Unicode. - person Aaron Bertrand   schedule 07.03.2013nvarchar(450)
(илиvarchar(900)
) - столбцы больших строк не подходят для индекса. - person marc_s   schedule 07.03.2013