是否可以根据相同table中字段B的值设置字段A的默认值?

Is it possible to set a default value for field A based on the value of field B in the same table?

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

使用 (PERSISTED) 计算列:

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

那么您不需要 INSERT 它或其他任何东西,它只需要您的 AutoNumber 列的值以 'S' 为前缀。保留该列意味着您可以将其添加到索引中,如果您要将该列用于 WHERE 子句或 JOINs.

,这将有助于提高性能

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