我将列的宽度从varchar(8)增加到varchar(10)。我是否需要删除此列的索引并重新创建它?
答案 0 :(得分:0)
无需删除并重新创建索引 - 因为它的元数据只会更改。 请查看以下链接以供参考。
答案 1 :(得分:0)
我不太确定我的问题。如果您在该列上有非聚集索引=>在删除索引之前,不能更改列的数据类型。
为什么呢?因为它必须为索引分配更多空间。
另一种选择是:
1 /禁用索引:
ALTER INDEX <indexname> ON <tablename> DISABLE;
2 /更改列的数据类型
ALTER TABLE <tablename> ALTER COLUMN <columnname> varchar(10) NOT NULL;
3 /重建索引(没有ALTER INDEX ... ENABLE):
ALTER INDEX <indexname> ON <tablename> REBUILD;