如何更改列和计算列

Posted

技术标签:

【中文标题】如何更改列和计算列【英文标题】:How to alter a column and a computed column 【发布时间】:2008-09-30 19:32:54 【问题描述】:

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

这就是表格的样子

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

create index idxUpperBaseColumn ON testTable (upperBaseColumn)

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

最好的方法是什么?

【问题讨论】:

【参考方案1】:

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

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)

【讨论】:

以上是关于如何更改列和计算列的主要内容,如果未能解决你的问题,请参考以下文章

SQL替换数据库中的所有值,无论列和表

使用sql更改表的列的数据类型和添加新列和约束

handsontable:隐藏一些列而不更改数据数组/对象

更改列中的列宽或行高Excel

Oracle SQL 在字段更改时运行总计(仅在字段更改时对列求和)

Redshift 使用数据更改数字列