2008-09-30 9 views
5

Dans SQL SERVER DB, j'ai besoin de modifier une colonne baseColumn et une colonne calculée upperBaseColumn. Le upperBaseColumn a un index dessus.Comment modifier une colonne et une colonne calculée

Voici comment la table ressemble

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

create index idxUpperBaseColumn ON testTable (upperBaseColumn) 

Maintenant je dois augmenter la longueur de la colonne à la fois la baseColumn et upperBaseColumn.

Quelle est la meilleure façon de le faire?

Répondre

7

Je vous suggère de supprimer l'index, puis de supprimer la colonne calculée. Modifiez la taille, puis rajoutez la colonne calculée et l'index. En utilisant votre exemple ....

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) 
Questions connexes