2008-09-30 62 views
5

在SQL SERVER数据库中,我需要更改列baseColumn和计算列upperBaseColumnupperBaseColumn有它的索引。如何更改列和计算列

这是表的外观

create table testTable (baseColumn varchar(10), upperBaseColumn AS (upper(baseColumn)) 

create index idxUpperBaseColumn ON testTable (upperBaseColumn) 

现在我需要增加baseColumnupperBaseColumn两者的列长度。

这样做的最佳方法是什么?

回答

7

我建议你删除索引,然后删除计算列。更改大小,然后重新添加计算列和索引。用你的例子....

create table testTable (baseColumn varchar(10), upperBaseColumn AS (upper(baseColumn))) 
create index idxUpperBaseColumn ON testTable (upperBaseColumn) 

Drop Index TestTable.idxUpperBaseColumn 

Alter Table testTable Drop Column upperBaseColumn 

Alter Table testTable Alter Column baseColumn VarChar(20) 

Alter Table testTable Add upperBaseColumn As Upper(BaseColumn) 

create index idxUpperBaseColumn ON testTable (upperBaseColumn)