是否可以根据相同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
子句或 JOIN
s.
,这将有助于提高性能
但是,如果它纯粹用于 display/presentation 目的,并且永远不会在 WHERE
/ON
中使用,那么您不需要保留该列。
我有一个带有自动编号字段的 table。我有第二个字段,在插入时我希望它为自动编号字段获取生成的数字,并在其前面加上 'S'。我怎样才能做到这一点?我可以在默认值规范中加入某种表达式吗?
使用 (PERSISTED
) 计算列:
ALTER TABLE dbo.YourTable ADD PrefixedAutoNumber AS CONCAT('S',AutoNumber) PERSISTED;
那么您不需要 INSERT
它或其他任何东西,它只需要您的 AutoNumber
列的值以 'S'
为前缀。保留该列意味着您可以将其添加到索引中,如果您要将该列用于 WHERE
子句或 JOIN
s.
但是,如果它纯粹用于 display/presentation 目的,并且永远不会在 WHERE
/ON
中使用,那么您不需要保留该列。