2010-11-12 4 views
4

В MS SQL Server Manager Studio 2008 Express поле «Включенные столбцы» всегда отображается серым цветом в окне «Индексы/ключи» в дизайне диаграммы базы данных.Включить недоступно в индексе покрытия в SQL Server 2008 Express

За помощь это должно быть доступно, пока я не создаю кластерный индекс.

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

Я не вижу нигде, где MS говорит, что эта функция недоступна в экспресс-версии.

Любые идеи?

Другие данные:

Это скрипт, который создает таблицу:

CREATE UNIQUE INDEX IX_SocialTypes_Cover ON ClientSocialTypes(ClientID, SocialTypeID, [Source]) INCLUDE (URLID) 

Вот таблица поколения сценарий (индекс отсутствует):

CREATE TABLE [dbo].[ClientSocialTypes](
    [SocialTypeID] [int] IDENTITY(1,1) NOT NULL, 
    [ClientID] [int] NOT NULL, 
    [SocialTypeClassID] [tinyint] NOT NULL, 
    [Source] [nvarchar](50) NOT NULL, 
    [TagCount] [int] NOT NULL, 
    [URLID] [int] NULL, 
CONSTRAINT [PK_ClientSources] PRIMARY KEY CLUSTERED 
(
    [SocialTypeID] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY]  
GO 

ALTER TABLE [dbo].[ClientSocialTypes] WITH CHECK ADD CONSTRAINT [FK_ClientSocialTypes_Clients] FOREIGN KEY([ClientID]) 
REFERENCES [dbo].[Clients] ([ClientID]) 
ON UPDATE CASCADE 
ON DELETE CASCADE 
GO 

ALTER TABLE [dbo].[ClientSocialTypes] CHECK CONSTRAINT [FK_ClientSocialTypes_Clients] 
GO 

ALTER TABLE [dbo].[ClientSocialTypes] WITH CHECK ADD CONSTRAINT [FK_ClientSocialTypes_SocialTypeClasses] FOREIGN KEY([SocialTypeClassID]) 
REFERENCES [dbo].[SocialTypeClasses] ([SocialTypeClassID]) 
GO 

ALTER TABLE [dbo].[ClientSocialTypes] CHECK CONSTRAINT [FK_ClientSocialTypes_SocialTypeClasses] 
GO 

ALTER TABLE [dbo].[ClientSocialTypes] ADD CONSTRAINT [DF_ClientSocialTypes_SocialTypeClassID] DEFAULT ((1)) FOR [SocialTypeClassID] 
GO 

ALTER TABLE [dbo].[ClientSocialTypes] ADD CONSTRAINT [DF_ClientSocialTypes_TagCount] DEFAULT ((0)) FOR [TagCount] 
GO 

ALTER TABLE [dbo].[ClientSocialTypes] ADD CONSTRAINT [DF_ClientSocialTypes_HasTrackedURL] DEFAULT ((0)) FOR [URLID] 
GO 
+0

сгенерируйте полный скрипт таблицы и посмотрите, что он скажет. – gbn

ответ

5

Оказалось, что это также выделено в полной версии SQL Server. В SSMS используйте проводник объектов (а не конструктор), чтобы перейти к {database_name}> Tables> {table_name}> Indexes для управления содержащимися индексами.

1

index может фактически быть уникальным ограничением (используя CREATE/ALTER TABLE), а не индексом, созданным с использованием CREATE INDEX. Уникальные ограничения не допускают INCLUDE.

Это довольно запутанно ... сгенерируйте скрипт для ввода/записи индекса/ключа, и вы сможете подтвердить.

Edit:

  • При создании индекса по отдельности, вы должны обновить Object Explorer,

  • У вас есть 2 SocialType таблиц в разных схемах? (например, dbo.SocialType и [domain\myuser].SocialType). Это может произойти, если вы не укажете схему в операторах DDL.

+0

У меня только одна такая таблица, под схемой dbo. Действительно, вопрос 1: почему дизайнер не включит это поле, поэтому я использую его для создания индекса в первую очередь? Второй вопрос заключается в том, почему я не вижу его с дизайнером после его написания. – IamIC

+0

1. Потому что это может быть не индекс 2. Обновите объект-проводник. – gbn

6

Существует два разных диалоговых окна индекса. Древний ужасный ужасный, и новый (только что открыл), который фактически позволяет вам изменить эти вещи.

OLD ужасна

  • правой кнопкой мыши на столе в основном списке таблиц
  • Нажмите кнопку 'Design'
  • правой кнопкой мыши на списке столбцов и выберите 'Indexes/Keys'

Это не позволяет вам включать включенные столбцы.

NEW NICE ONE

  • Разверните таблицу в основных таблицах списка, чтобы показать 'Столбцы', 'Ключи', 'Ограничения', 'Триггеры' и т.д. папки
  • Разверните папку Indexes
  • правой кнопкой мыши папку для IndexesNew Index
  • правой кнопкой мыши существующий индекс и нажмите Properties, чтобы изменить существующий индекс

Это более новое диалоговое окно позволяет вам сделать намного больше, и я немного разочарован в Microsoft, чтобы сохранить старый и как долго он заставил меня открыть его.

+0

Интересно, что NEW NICE ONE недоступен для вновь созданной таблицы. («Microsoft SQL Server Management Studio 11.0.3153.0»). Опция «Новый индекс» выделена серым цветом, а контекстное меню «Свойства» также выделено серым цветом для существующих. Пока не знаю, почему. –

+2

Это только серый цвет, если у вас есть «таблица дизайна» для этой таблицы - вам нужно закрыть конструктор, прежде чем вы сможете открыть «новый хороший», –

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