根据另一个 T-SQL 语句自动填充列

Autofill a column according to another T-SQL statement

抱歉再次打扰您。哈哈:)

我正在查看类似问题的答案,但它们仍然不是很有帮助。

这是我的案例:

我想更改 table 上的架构以自动填充一列。

我的理解是update函数只针对值,以后输入新值时不会应用。

我希望可以根据Grade设置Gname,这样我就可以拥有了。这样我就可以有 1 个新手或新手,2 个标准,3 个中级和 4 个专家。

有人可以帮忙吗?或指导我找到正确的文档。

谢谢大家

通常这将通过使用查找来完成 table。

所以你会得到你的 table,然后为 Gname 添加另一个 table,它将带有 Grade Id 1,2,3,4 和 Name。然后,当您想将其作为列添加到查询中时,您可以通过将您的 gname table 与 ID 上的 table 连接起来来实现。

但是自 sql-server 2008 以来还有一个计算列 https://msdn.microsoft.com/en-us/library/ms188300(v=sql.105).aspx

如果您想启用计算列,您可以更改 table 并添加它。

ALTER TABLE TableName
ADD ComputedColumnName AS (CASE WHEN Grade = 1 THEN 'novice' WHEN Grade = 2 THEN 'standard'.....END)

一些程序员使用的另一种方法是不将查找放在数据库中的任何位置,而是在其应用程序层中使用枚举来处理转换。

第一种方法对数据库中存储 space 的需求较小,并且不需要 schema/table 定义更改来重命名或添加额外的 gname。此外,它还可以提高数据完整性,因为我已经看到枚举搞砸了一个非常重要的电子商务网站,并导致程序员在调试时非常头疼。