SQL Server:添加具有计算字段的列

时间:2018-11-16 16:08:22

标签: sql sql-server ddl calculated-columns

我正在尝试更改表以添加具有org_id的最后3位数字的附加列。我这样做是因为由于大小原因,我正在使用的软件无法读取34000000000000000002。我想将34000000000000000002变成002并将其放在新列中。我以为下面的东西会起作用

alter table [org] add new_org_id integer value (select right(org_id,3));

我是sql的新手,所以如果我还没结束,我深表歉意。

enter image description here

2 个答案:

答案 0 :(得分:3)

你很近。有关正确的语法,请参见documentation

alter table [org] add new_org_id as right(org_id,3);

此外,您可能希望将其设为persisted计算列

  

PERSISTED指定数据库引擎将物理存储   计算表中的值,并在其他任何时候更新值   计算列所依赖的列将更新。标记一个   作为PERSISTED的计算列允许在索引上创建索引   确定性但不精确的计算列。欲了解更多   信息,请参阅计算列索引。任何计算列   必须明确用作分区表的分区列   标记为“ PERSISTED”。 compute_column_expression必须是确定性的   当指定PERSISTED时。

答案 1 :(得分:1)

我认为非常接近

我愿意

alter table [org] add new_org_id integer

UPDATE [org]
SET new_org_id = right(org_id,3);