我有一个名为Cost的计算列返回资金.
我想要另一个返回列(Cost * 2),但不允许我.
解决方法
计算列不能引用其他计算列.虽然你应该能够重复你想参考的表达式.
From MSDN:
A computed column is computed from an expression that can use other columns in the same table. The expression can be a noncomputed column name,constant,function,and any combination of these connected by one or more operators. The expression cannot be a subquery.
我还应该补充一点,如果这是按照你的希望工作的话,会提出你必须处理的各种新问题.目前,许多列/行的更新并行和原子地发生.
因此,在计算中使用计算列是没有意义的,因为它不会完全具有值….如果有的话,你会使用一个旧的,未更新的值.
如果你真的想避免重复表达式,你可以在触发器中执行此操作,但我强烈建议您不要这样做.触发器不是有趣的,只能在极少数情况下才能被非常聪明的人使用.