2009-11-15 3 views
3

Я использую исследователь Database/дизайнер Visual C# 2008 Express Edition с SQL Server Express 2008Проблемы создания индекс с включенными столбцами (SQL Server Express)

Я создал таблицу и хочу добавить индекс. Но индекс превысит 900 байт. Одним из способов является использование включенных столбцов в индексе. К сожалению, свойство «Включенные столбцы» отключено в дизайнере индекса, и я не нашел способ его включения.

Может кто-нибудь сказать мне, как включить недвижимость? Есть ли другой способ добавить включенные столбцы в индекс с помощью конструктора? Является ли эта функция вообще поддерживаемой SQL Server Express?

+0

Простите, мой вопрос, но ... имеет смысл индекс с ключами (или даже данными, то есть в смысле покрытия индексов), превышающим 900 байт? Пожалуйста, предоставьте подробную информацию о вашем случае использования. – mjv

+1

Вы определенно делаете что-то неправильно. Я имею в виду, что есть очень задние случаи, когда вам действительно нужен такой индекс. Могу ли я попросить вас описать структуру вашей таблицы и почему вам нужен индекс. –

+0

@ Олег К, мы, похоже, думаем одинаково ... Не уверен, что имеет в виду Себастьян. – mjv

ответ

10

Вам необходимо создать индекс, развернув таблицу в проводнике, щелкнув правой кнопкой мыши папку «Индексы» и выбрав «Добавить индекс ...». Удостоверьтесь, что дизайнер стола закрыт, когда вы делаете это

+2

Ницца! Я не подумал попробовать это. В «Design» -командах внешних ключей и контрольных ограничений появляется тот же диалог, который используется дизайнером таблиц, поэтому я ожидал бы того же для New/Properties в индексах. По какой-то причине существует гораздо более продвинутый индексный «редактор», который, кажется, доступен только через контекстное меню ... – MobyDX

+0

Я никогда бы не нашел это самостоятельно. –

1

Это, безусловно, поддерживается против экспресс-доставки. Через некоторое время вы найдете ограничения в большинстве инструментов графического интерфейса, стоит изучить фактический синтаксис и напрямую ввести команды. Синтаксис для CREATE INDEX легко найти на MSDN, и они обычно описывают любые ограничения издания в разделе примечаний.

Так, например, я просто пытался это против моей экспресс, например, без проблем:

create table T1 (
    ID int not null, 
    Val1 varchar(10) not null 
) 
go 
create unique nonclustered index IX_T1 on T1 (ID) INCLUDE (Val1) 
go 

Редактировать также, как и другие говорили, что это необычный дизайн. Кроме того, одно ограничение (и, возможно, почему оно было отключено в GUI), состоит в том, что вы можете включать только INCLUDE столбцы в некластеризованные индексы. Немного поразмыслить о том, что они должны, должно объяснить, почему.

Смежные вопросы