我想知道是否可以在sql server 2008中的表上为现有聚簇索引添加列?如果是这样,是否可以在线进行?
答案 0 :(得分:2)
您可以更改聚集索引的定义(即向键添加新列)作为在线操作。我没有要验证的实例,但语法如下:
create clustered index [indexname] on [table]([column], [column], [column], ...)
with (drop_existing =on, online = on);
操作完全在线(表格打开以进行读取,插入,更新和删除)。您需要一个Enterprise Edition实例(因为只有EE支持在线索引构建操作),并且该表不能包含LOB列(至少最多SQL Server 2012 it cannot)。
该操作是对表的完全重建,资源很重,并且会生成重要的日志。
答案 1 :(得分:1)
您无法将列添加到现有索引,但可以删除索引并使用其他列重新创建该索引。
你可以在线进行,但如果桌子很大,这可能是一项繁重且耗时的操作。