使用包含列创建索引的问题(SQL Server Express)

时间:2009-11-15 23:26:32

标签: sql-server sql-server-express devexpress

我正在使用Visual C#2008 Express Edition的数据库浏览器/设计器和SQL Server Express 2008.

我创建了一个表,想要添加一个索引。但索引将超过900字节。一种解决方法是在索引中使用包含的列。不幸的是,索引设计器中禁用了“包含的列”属性,但我还没有找到启用它的方法。

有人可以告诉我如何启用该属性吗?是否有另一种方法可以使用设计器将包含的列添加到索引中? SQL Server Express是否支持此功能?

2 个答案:

答案 0 :(得分:12)

您需要通过展开资源管理器中的表来创建索引,右键单击Indexes文件夹并选择“Add index ...”。确保在执行此操作时关闭表设计器

答案 1 :(得分:1)

肯定支持快递。过了一会儿,你会发现大多数GUI工具都有局限性,值得学习实际的语法,直接输入命令。 CREATE INDEX的语法很容易在MSDN上找到,它们通常会在备注部分描述任何版本限制。

所以,例如,我刚刚针对我的Express实例运行此操作,没有问题:

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中禁用它的原因)是,您只能在非聚簇索引中包含列。稍微考虑一下它们应该揭示原因。