Sql server 根据不同数据类型的另一列设置列的默认值

Sql server 根据不同数据类型的另一列设置列的默认值,sql-server,database-design,sqldatatypes,Sql Server,Database Design,Sqldatatypes,我正在SQL表设计器中创建一个新表,我希望该列的“默认值或绑定”基于同一表中另一列的值。所以我想让A列从B列的子字符串中得到它的值。A列是数值数据类型,B列是varchar。现在我有以下内容,但是在截图2中得到了信息…这里有什么问题吗?我还有一个表达式CONVERT(数值(2,0),子字符串(col_b,3,2)),它给出了相同的消息 屏幕截图1: 屏幕截图2: 我认为不能使用默认约束基于另一列设置一列的默认值 如果你想做的只是替换一个空值,你可能想考虑一个计算列。 在极端情况下,您可以在触发

我正在SQL表设计器中创建一个新表,我希望该列的“默认值或绑定”基于同一表中另一列的值。所以我想让A列从B列的子字符串中得到它的值。A列是
数值
数据类型,B列是
varchar
。现在我有以下内容,但是在截图2中得到了信息…这里有什么问题吗?我还有一个表达式
CONVERT(数值(2,0),子字符串(col_b,3,2))
,它给出了相同的消息

屏幕截图1:

屏幕截图2:


我认为不能使用默认约束基于另一列设置一列的默认值

如果你想做的只是替换一个空值,你可能想考虑一个计算列。


在极端情况下,您可以在触发器中执行您想要的操作。阅读而不是插入触发器

谢谢@Raj More,我完全忘记了计算列。正是我想要的。