我正在尝试更改表以添加具有org_id
的最后3位数字的附加列。我这样做是因为由于大小原因,我正在使用的软件无法读取34000000000000000002
。我想将34000000000000000002
变成002
并将其放在新列中。我以为下面的东西会起作用
alter table [org] add new_org_id integer value (select right(org_id,3));
我是sql的新手,所以如果我还没结束,我深表歉意。
答案 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);