2008-09-25 57 views
3

我需要更改列的长度column_length(比如说超过500个表格),并且表格可能没有记录,范围从10条记录到3条或4百万条记录。更改列长度

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测试上column_length添加主键聚集索引

4)该列可能是一个复合主键

5)该列可能有一个外键引用

简而言之,column_length列可能是任何东西。

所有我需要的是创建脚本来改变从varchar(10)的column_length到varchar(50)

我应该删除索引长度改变之前,然后重新创建它们? 主键和外键怎么样?

通过我的研究和测试,我想通了,...

我可以改变柱与出长度下降的主键或任何指标,但不得不辍学,独自创建外键。

这是一个正确的假设吗?我需要对此进行验证。

回答

2

是的,你应该能够修改列。根据我的经验,离开索引和主键的速度会更快。

1

可能您需要在外键表上更改列以增加大小。因此,首先放弃fk约束,然后修正外键kkey字段,然后修复主键字段,然后重新放置约束。