Sql server 改变列的长度
我需要在500多个表中更改列的长度Sql server 改变列的长度,sql-server,Sql Server,我需要在500多个表中更改列的长度column\u length,这些表可能没有从10条记录到300万或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_
column\u length
,这些表可能没有从10条记录到300万或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) 列上可能包含主键
聚集索引
创建表测试(列长度varchar(10))
alter table test在列长度上添加主键聚集索引
4) 该列可能是复合主键
5) 该列可能有外键引用
简而言之,列的长度可以是任何内容
我只需要创建脚本,将列的长度从varchar(10)
更改为varchar(50)
我应该在修改之前删除索引,然后重新创建它们吗?
那么主键和外键呢
通过我的研究和测试,我发现
我可以在不删除主键或任何索引的情况下更改列的长度,但必须删除并重新创建外键
这是正确的假设吗?我需要对此进行验证。是的,您应该能够修改列。根据我的经验,保留索引和主键会更快。可能还需要在外键表上更改列以增加大小。因此,首先删除fk约束,然后修复forign kkey字段,然后修复主键字段,然后重新启用约束