如何从另一个表中默认列值?

时间:2017-11-09 21:28:36

标签: sql-server tsql

想象一下,我有两个名为Account和AccountStatus的表。在Account表中,我通过引用AccountStatus主键的外键获取了我的帐户数据,包括accountStatusID。

在AccountStatus表中,我插入了所有可能的用户状态(例如,帐户未激活,帐户已激活,帐户被禁止等)。

现在我的问题是当我插入一个帐户时,我希望AccountStatus的默认值为“Account Non-Activated”,它有一些ID。我无法弄清楚如何在没有硬编码的情况下实现这一点,例如插入触发器从AccountStatus获取Select ID AccountStatusTitle =“Account Non-Activated”并从Account表中设置字段(accountStatusID)。

1 个答案:

答案 0 :(得分:0)

这里最简单的选择是使用默认约束对ID进行硬编码。但是,如果你真的想避免这种情况,那么我会推荐以下内容:

a)将“IsDefault”列添加到AccountStatus表

b)在Account Table上的AccountStatusId字段中添加一个默认约束,该字段调用一个函数,该函数将返回IsDefault列设置为true的AccountStatus的id。

希望这有帮助。