SQL Server:添加具有计算字段的列
我试图修改一个表,添加一个附加列,该列的最后3位为SQL Server:添加具有计算字段的列,sql,sql-server,ddl,calculated-columns,Sql,Sql Server,Ddl,Calculated Columns,我试图修改一个表,添加一个附加列,该列的最后3位为org\u id。我这样做是因为我使用的软件由于大小原因无法读取340000000000000000002。我想将340000000000002转换为002,并将其放在新列中。我想下面的方法会管用的 alter table [org] add new_org_id integer value (select right(org_id,3)); 我对sql非常陌生,所以如果我还不熟悉,我很抱歉 我想很接近 我愿意 alter table [org
org\u id
。我这样做是因为我使用的软件由于大小原因无法读取340000000000000000002
。我想将340000000000002
转换为002
,并将其放在新列中。我想下面的方法会管用的
alter table [org] add new_org_id integer value (select right(org_id,3));
我对sql非常陌生,所以如果我还不熟悉,我很抱歉
我想很接近
我愿意
alter table [org] add new_org_id integer
UPDATE [org]
SET new_org_id = right(org_id,3);
你很接近。有关正确的语法,请参阅
alter table [org] add new_org_id as right(org_id,3);
此外,您可能希望将其设置为计算列
持久化指定数据库引擎将物理存储
表中的计算值,并在任何其他
更新计算列所依赖的列。标记
持久化的计算列允许在
确定但不精确的计算列。更多
有关详细信息,请参见计算列上的索引。任何计算列
用作分区表的分区列必须显式
标记的持续存在。计算列表达式必须是确定性的
指定了持久化的时间
但这不是计算列,每次插入新数据时都必须更新该列。如@scsimon所建议。找出存储的进程;或正在将数据推送到表中的SSIS包。然后,添加新列,并在merge或insert语句中添加具有所需逻辑的新列。这将处理新的er数据;但您仍然需要对历史数据进行更新。(2个必须做的事情;如果你考虑将列添加到表中,则3)。