【发布时间】:2008-09-25 15:37:31
【问题描述】:
我需要在 500 多个表中更改列 column_length 的长度,并且这些表可能没有从 10 条记录到 3 或 400 万条记录的记录。
1) 该列可能只是普通列
create table test(column_length varchar(10))
2) 该列可能包含非聚集索引。
create table test(column_length varchar(10))
CREATE UNIQUE NONCLUSTERED INDEX column_length_ind ON test (column_length)
3) 该列可能包含PRIMARY KEY 聚集索引
创建表测试(column_length varchar(10))
alter table test 在 column_length 上添加主键聚集索引
4) 该列可能是复合主键
5) 该列可能有外键引用
简而言之,column_length 列可能是任何东西。
我只需要创建脚本来将 column_length 的长度从 varchar(10) 更改为 varchar(50)
我应该在更改之前删除索引然后重新创建它们吗? 主键和外键呢?
通过我的研究和测试,我发现......
我可以只更改列的长度而不删除主键或任何索引,但必须单独删除并重新创建外键。
这是一个正确的假设吗?我需要对此进行验证。
【问题讨论】:
标签: sql-server