我在数据库在想实现如下功能,合计=金额1+金额2,其中合计、金额1、金额2都是列名。
在不使用触发器的情况下,我使用了默认值:
alter table 表名 add constraint 约束名 default 金额1+金额2 for 合计
数据库中提示: 有效表达式包括常量、常量表达式和变量(在某些上下文中)。不允许使用列名。
有没高手可以解决的??????

解决方案 »

  1.   

    alter table 表名 alter column 合计 as 金额1+金额2
    把合计改成计算列
      

  2.   

    建个触发器,当添加加数据后就把合计加起来update
      

  3.   

    create table kss (id int,金额1 int, 金额2 int, 合计 int)
    --删除列 
    alter table kss drop column 合计
    --增加列
    alter table kss add 合计  as 金额1+金额2
    这样
      

  4.   

    alter table 表名 add constraint 约束名 default 金额1+金额2 for 合计 
    数据库中提示: 有效表达式包括常量、常量表达式和变量(在某些上下文中)。不允许使用列名。 
    有没高手可以解决的?????? alter table 表名 add 合计=金额1+金额2 
      

  5.   

    create table tb(金额1 int,金额2 int , 合计 as 金额1 + 金额2)
    insert into tb(金额1,金额2) values(1,2)
    insert into tb(金额1,金额2) values(3,4)
    go
    select * from tbdrop table tb/*
    金额1         金额2         合计          
    ----------- ----------- ----------- 
    1           2           3
    3           4           7(所影响的行数为 2 行)
    */