SQL Server 2005 中的计算字段
在实际工作上遇到的问题:
在订单表中有某项商品是将“订购数量(Quantity)”乘以“单件价格(UnitCost)”等于该项商品的总价(Subtotal)。
在数据表中有的列(以下皆改叫为“字段”)是通过其他的已有字段计算而来的,这样的字段为计算字段。
在 SQL Server 2005 的 SQL Server Management Studio(即SSMS) 中新添加的字段是须有数据类型和是否为NULL的属性的,但是计算字段却是没有属性的,那么如何在已有的数据表OrderDetail中添加新的计算字段Subtotal呢?
在SSMS中的表设计中选击某列会有列属性,在其中有个“计算所得的列规范”的选项,如图所示:
在上图中的“公式”中输入你想要的计算公式即可,这个字段就是计算字段了。
下图所示为计算字段与其他字段在SSMS的表列中不一样的图标:
打开表或在新建表的时候,在列属性下面就有\"计算所得的列规范\"项,在\"公式\"中填入需要的公式便完成计算列的设计.
比如我们有一个表,表中有字段Birthday(datetime类型),那么我们再新建一个列为Age,在公式中填入(isnull([dbo].[GetAge]([Birthday]),(0)))然后保存便可以了。这个时候打开表中数据就可以看到Age字段已经全部显示出来了.
注:在计算列中是不能直接写比较复杂的逻辑的,一般需要结合自定义函数和计算列,这样就可以完成各种复杂的逻辑了。
对表右击选“编辑”,就可以看到SQL语句中有:
[SubCost] AS (isnull([Quantity]*[UnitCost],(0.00))),
ps.计算字段也可以建CHECK约束哦。