Включить недоступные в покрывающие индексы в SQL Server 2008 Express - PullRequest
5 голосов
/ 12 ноября 2010

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

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

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

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

Есть идеи?

Дополнительные данные:

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

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

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

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

Ответы [ 3 ]

9 голосов
/ 15 июля 2013

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

СТАРЫЙ УЖАСНЫЙ ОДИН

  • Щелкните правой кнопкой мышив таблице в списке основных таблиц
  • Нажмите «Дизайн»
  • Щелкните правой кнопкой мыши список столбцов и выберите «Индексы / ключи»

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

NEW NICE ONE

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

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

7 голосов
/ 23 декабря 2010

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

1 голос
/ 12 ноября 2010

Индекс может фактически быть уникальным ограничением (используя CREATE / ALTER TABLE), а не индексом, созданным с помощью CREATE INDEX. Уникальные ограничения не позволяют ВКЛЮЧИТЬ.

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

Edit:

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...