使用Include子句向索引添加列而不删除SQL Server中的索引

时间:2015-08-25 12:16:29

标签: sql sql-server sql-server-2008 sql-server-2012

我想以下面的格式向现有索引引入一列。

现有指数:

Create index idx_indexname on tablename(id)

我的新索引将是

Alter index idx_indexname on tablename(id) include (column1)

我想以这种方式添加300个索引的列。请提出任何动态方法。

注意:我的大多数索引都属于唯一(非群集)/主键(聚簇索引)

2 个答案:

答案 0 :(得分:0)

您可以删除并重新创建索引,但不能更改索引以添加更多列。

Alter index仅用于设置索引的某些属性。

答案 1 :(得分:0)

首先,从列表中删除所有集群索引。它们已经是表格本身,因此所有列都是自动包含的。 至于其他所有,你必须删除索引并重新创建它。您可以使用drop_existing选项,但它实际上会使索引脱机。 最好创建新索引。然后删除旧的。并使用sp_rename重命名以将新索引设置为原始索引名称。