Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何更改列和计算列_Sql_Sql Server - Fatal编程技术网

Sql 如何更改列和计算列

Sql 如何更改列和计算列,sql,sql-server,Sql,Sql Server,在SQL SERVER DB中,我需要更改列baseColumn和计算列upperBaseColumn。upperBaseColumn上有索引 这是桌子的样子 create table testTable (baseColumn varchar(10), upperBaseColumn AS (upper(baseColumn)) create index idxUpperBaseColumn ON testTable (upperBaseColumn) 现在我需要增加baseColumn和

在SQL SERVER DB中,我需要更改列
baseColumn
和计算列
upperBaseColumn
upperBaseColumn
上有索引

这是桌子的样子

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

create index idxUpperBaseColumn ON testTable (upperBaseColumn)
现在我需要增加
baseColumn
upperBaseColumn
的列长度


最好的方法是什么?

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

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)