sqlserver 将两列的值的积作为第三列的值怎么处理?

已有的表中有三个字段,累计时长,每小时报酬,累计报酬(累计报酬=累计时长*每小时报酬),要怎么做才能使第三列的值跟随前两列变化?原来想设为默认值,但是默认值不支持包含列名
要求:
1、每次前两列数据改变,第三列随之变化,不单单只是一次更新操作
2、表已经建好了,可以在尽量不重新建立表的情况下实现吗?

阅读 4.3k
2 个回答

不应该这么设计,如果你要查询两列乘积,就直接用SQL语句查询就好啊,没必要存储。
如果按你这么设计,你想查询累计报酬:
SELECT Time, Pay, TotalPay FROM dbo.reward
正常查询方式:
SELECT Time, Pay, (Time * Pay) AS TotalPay FROM dbo.reward
在数据量并不算很大的情况下区别不算大,所以楼主没必要执着于存储可以计算得到的数据啊。

update table set A = @a,C= @a*B

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进