一种方法--建立测试环境
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
*/第二种,用触发器--建立测试环境
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
*/

解决方案 »

  1.   

    create trigger try on a
    instead of  insert 
    as 
    insert into a  select num,name,math,english,sum=math+english from insertedinsert into a(num,name,math,english)  values(1,'abc',88.8,92.1)
    --或 insert into a values(1,'bbc',99,88,0)
    select * from a
      

  2.   

    這種問題處理最好用觸發器Create Trigger [Updatesum] On TEST
    Instead Of Insert
    AS
    Insert TEST Select num,name,sex,math,english,sum=math+english from Inserted
    GO
      

  3.   

    触发器或者把sum列定义为计算列