是否可以根据同一个表中字段 B 的值为字段 A 设置默认值?

时间:2021-01-12 15:54:01

标签: sql-server sql-server-2014

我有一个带有自动编号字段的表格。我有第二个字段,在插入时我希望它为自动编号字段获取生成的数字,并在它前面加上“S”。我怎样才能做到这一点?我可以在默认值规范中加入某种表达式吗?

1 个答案:

答案 0 :(得分:2)

使用 (PERSISTED) 计算列:

ALTER TABLE dbo.YourTable ADD PrefixedAutoNumber AS CONCAT('S',AutoNumber) PERSISTED;

那么您就不需要 INSERT 它,或其他任何东西,它只需将 AutoNumber 列的值以 'S' 为前缀。保留该列意味着您可以将其添加到索引中,如果您打算将该列用于 WHERE 子句或 JOIN,这将有助于提高性能。

但是,如果它纯粹用于显示/演示目的,并且永远不会在 WHERE/ON 中使用,那么您不需要保留该列。