包括在SQL Server 2008 Express中覆盖索引时不可用

Iam*_*mIC 6 sql-server indexing ssms sql-server-2008

在MS SQL Server Manager Studio for 2008 Express中,"包含的列"字段始终在数据库关系图设计器的"索引/键"窗口中显示为灰色.

根据帮助,只要我没有创建聚簇索引,就应该可以使用它.

此外,如果我运行查询来创建索引(运行正常),则创建的查询不会列出添加的表.

我没有看到MS在Express版本中说这个功能不可用的地方.

有任何想法吗?

更多数据:

这是创建表的脚本:

CREATE UNIQUE INDEX IX_SocialTypes_Cover ON ClientSocialTypes(ClientID, SocialTypeID, [Source]) INCLUDE (URLID)
Run Code Online (Sandbox Code Playgroud)

这是表格脚本(索引缺失):

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
Run Code Online (Sandbox Code Playgroud)

Sim*_*ver 10

有两个不同的索引对话框.一个古老的可怕的可怕的,一个新的(只是刚发现它),实际上让你改变这些东西.

老可怕的一个

  • 右键单击主表列表中的表
  • 点击"设计"
  • 右键单击列列表,然后选择"索引/键"

这不允许您更改包含的列.

NEW NICE ONE

  • 展开主表列表中的表以显示"列","键","约束","触发器"等文件夹
  • 展开Indexes文件夹
  • 右键单击Indexes文件夹New Index
  • 右键单击现有索引,然后单击Properties以编辑现有索引

这个更新的对话框可以让你做更多的事情,我对微软保持原有状态以及我花了多长时间发现它感到很失望.

  • 如果您为该表打开"设计表",它只会变灰 - 您需要关闭设计师才能打开'新的好的' (4认同)

Iam*_*mIC 7

事实证明,这在SQL Server的完整版本中也是灰色的.在SSMS中,使用对象资源管理器(而不是Designer)导航到{database_name}> Tables> {table_name}> Indexes来管理包含的索引.