表temp:
ID 产品ID 时间 v1 v2 v3 v4 sumsv1--v4的默认值1
sums=v1+v2+v3+v4问题:当只要输入 “产品ID”后,表中自动完成 得到当前系统时间和sums的值例:执行语句insert temp (产品ID) values('2001'),查询表后得到:ID 产品ID 时间 v1 v2 v3 v4 sums
1 2001 17:20 1 1 1 1 4
ID 产品ID 时间 v1 v2 v3 v4 sumsv1--v4的默认值1
sums=v1+v2+v3+v4问题:当只要输入 “产品ID”后,表中自动完成 得到当前系统时间和sums的值例:执行语句insert temp (产品ID) values('2001'),查询表后得到:ID 产品ID 时间 v1 v2 v3 v4 sums
1 2001 17:20 1 1 1 1 4
时间:getdate()
v1:1
v2:1
v3:1
v4:1
sums:v1+v2+v3+v4
for insert
as
update temp set 时间 = getdate() , sums = v1+v2+v3+v4 from inserted a where a.产品ID= 产品ID
for insert
as
update temp set 时间 = getdate() , sums = v1+v2+v3+v4 from inserted a where a.产品ID= 产品ID-----------------------------------------------
其中sums = v1+v2+v3+v4 ,输入的时候就没有输入这4个字段的值,所以这个触发器不能用
时间 char(5) default convert(char(5), getdate(), 108),
v1 int default 1,
v2 int default 1,
v3 int default 1,
v4 int default 1,
sums as v1+v2+v3+v4
)insert T(产品ID) values('2001')select * from T
--result
id 产品ID 时间 v1 v2 v3 v4 sums
----------- ---------- ----- ----------- ----------- ----------- ----------- -----------
1 2001 17:22 1 1 1 1 4(1 row(s) affected)
不能更新逻辑表 INSERTED 和 DELETED。
create trigger auto_update on temp
for insert
as
update a set a.时间 = getdate() , a.sums = a.v1+a.v2+a.v3+a.v4 from temp a, inserted b where a.产品ID= b.产品ID
insert temp (产品ID) values(2001)select * from temp
id int identity,
产品ID varchar(10),
时间 char(5) default convert(char(5), getdate(), 108),
v1 int default 1,
v2 int default 1,
v3 int default 1,
v4 int default 1,
sums int default 4
)