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

时间:2014-10-23 19:41:33

标签: sql-server database-design sqldatatypes

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

屏幕截图1:

enter image description here

屏幕截图2:

enter image description here

1 个答案:

答案 0 :(得分:12)

我不认为您可以使用DEFAULT CONSTRAINT基于另一列设置一列的DEFAULT值。

如果您要查找的所有内容都替换为NULL值,则可能需要考虑计算列。 http://msdn.microsoft.com/en-us/library/ms188300.aspx

在极端情况下,您可以在TRIGGER中完全按照自己的意愿行事。阅读INSTEAD OF INSERT触发器。 http://technet.microsoft.com/en-us/library/ms175089(v=sql.105).aspx