【问题标题】:SQL Server : alter column with fix valueSQL Server:更改具有固定值的列
【发布时间】:2019-03-13 20:00:36
【问题描述】:

我有一个包含此列的表格

ALTER TABLE TestTable ADD TestColumn AS '1'

如何将其更改为2

ALTER TABLE TestTable ALTER COLUMN TestColumn AS '2'

没用。

关键字“AS”附近的语法不正确。

删除和添加列不是一种选择。

【问题讨论】:

  • 您不能更改计算列。你必须再次DROPADD
  • 您将来想要再次更改这个“常数”的可能性有多大?在这一点上,我会问自己它是否真的属于该表中的计算列。
  • @Damien_The_Unbeliever 在我的生产系统中,常量列是根据 serval 列和唯一键的一部分计算的哈希码 - 这就是我不想删除它的原因

标签: sql sql-server alter-table alter


【解决方案1】:

既然是constant 列,你应该重新创建它:

ALTER TABLE TestTable DROP COLUMN TestColumn;
ALTER TABLE TestTable ADD TestColumn AS '2';

ALTER TABLE ... ALTER COLUMN ... 语法不允许与 <computed_column_definition> 一起使用 - 请参阅 specification

ALTER COLUMN 只允许关注:

ALTER COLUMN column_name   
{   
    [ type_schema_name. ] type_name   
        [ (   
            {   
               precision [ , scale ]   
            }   
        ) ]   
    [ COLLATE collation_name ]   
    [ NULL | NOT NULL ] 
}  

【讨论】:

    【解决方案2】:

    你可以试试这个

    alter table TestTable 
    add default(2) for TestColumn 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 2014-01-20
      • 1970-01-01
      • 2017-05-09
      • 2012-03-25
      相关资源
      最近更新 更多