一种方法--建立测试环境
Create Table TEST
(num Int,
 name Nvarchar(10),
 sex Nvarchar(5),
 math Int,
 english Int,
 sum As(math+english))
--测试
Insert TEST(num, name, sex, math, english) Values(1,N'张三',N'男',85,90)
Select * from TEST
--删除测试环境
Drop Table TEST
--结果
/*
num name sex math english sum
1 张三 男 85 90 175
*/

解决方案 »

  1.   

    第二种,用触发器--建立测试环境
    Create Table TEST
    (num Int,
     name Nvarchar(10),
     sex Nvarchar(5),
     math Int,
     english Int,
     sum  Int)
    GO
    --建立触发器
    Create Trigger [Updatesum] On TEST
    Instead Of Insert
    AS
    Insert TEST Select num,name,sex,math,english,sum=math+english from Inserted
    GO
    --测试
    Insert TEST(num, name, sex, math, english) Values(1,N'张三',N'男',85,90)
    Select * from TEST
    --删除测试环境
    Drop Table TEST
    --结果
    /*
    num name sex math english sum
    1 张三 男 85 90 175
    */
      

  2.   

    用触发器。不过对这种问题,我倾向于取消sum字段,在输出环节实时产生sum,而不是在输入环节预存sum。否则你要时刻面对“sum真的等于math + english”吗这个问题,使他们不同步的意外始终会存在。