2008-09-30 18 views
5

W SQL SERVER DB, muszę zmienić kolumnę baseColumn i kolumnę obliczoną upperBaseColumn. upperBaseColumn ma na niej indeks.Jak zmienić kolumnę i obliczoną kolumnę

ten sposób tabela wygląda

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

create index idxUpperBaseColumn ON testTable (upperBaseColumn) 

Teraz trzeba zwiększyć długość kolumny zarówno baseColumn i upperBaseColumn.

Jaki jest najlepszy sposób na zrobienie tego?

Odpowiedz

7

Proponuję upuścić indeks, a następnie upuścić kolumnę obliczeń. Zmień rozmiar, a następnie ponownie dodaj kolumnę obliczeniową i indeks. Na przykładzie ...

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)