使列与同一表中的另一列保持同步

时间:2016-12-05 13:37:05

标签: sql sql-server

我想知道是否可以让保持同步的列与同一个表中的另一列保持同步

让这张桌子成为一个例子:

+------+-----------+
| name | name_copy |
+------+-----------+
| John | John      |
+------+-----------+
| Mary | Mary      |
+------+-----------+

我想:

能够INSERT进入此表,仅为name列提供值 - name_copy列应自动获取我在name中使用的值

UPDATE列在预先存在的行上name列时,name_copy应自动更新以匹配新的&已更新name_column

一些解决方案

  • 我可以通过代码执行此操作,但这非常糟糕,因为我无法保证我的代码始终可以访问数据(如果有人通过数据库客户端更改数据会怎样?)

1 个答案:

答案 0 :(得分:3)

这是一个奇怪的请求,但您可以使用计算列来执行此操作:

alter table t add name_copy as (name);

name_copy实际上并未存储在表中(除非您明确地将其实现)。在查询时它会保持最新状态。