当表Stock中的列StockNum修改时,检查修改前后数据是否一样,如果修改前大于修改后,则减少表Part中的库存量PartKC,反之则增加;同时,当列StockNum或是列StockJE修改时,表Part中的PartJG更新,这样的触发器该怎么做呢?
解决方案 »
- 安装SQL后 无法登陆
- 非常简单的问题求助
- 请问本机SERVER2000 连不上是怎么回事?在线等
- Varchar类型如何通过Convert()转化成Money?另外Money类型是否相当于程序语言中的double类型,请指点
- SQL SERVER数据库置疑了,如何恢复?
- 这句SQL错在哪里
- 如何对比两个表中的记录,查找出不同的记录?
- 请问关于sqlserver数据库空间的扩展
- 请问: 有一个数据库, 里面有很多的数据。 我想再建一个不同名的数据库,并且把那库的时候文件全部导到新的库里。
- 在MSSQL 2005 中,在活动监视器中列表中,关于网卡地址与主机名的问题,邹键有空看看。
- 请高手解决网站被人挂马弹窗人民币 谢 100元
- 初学SQL请教存储过程
create table part(id int,partkc int,partjg int)
insert into stock select 1,15,20
union all select 2,32,44
insert into part select 1,50,76
union all select 2,88,79
go
--如果只是更新,且part表id唯一:
create trigger updatepart
on stock
for update
as
begin
update part set partkc=partkc+b.stocknum-c.stocknum,partjg=partjg+b.stockje-c.stockje
from part a inner join inserted b on a.id=b.id inner join deleted c on a.id=c.id
end
go
update stock set stocknum=18 where id=1
select * from part
/*
id partkc partjg
----------- ----------- -----------
1 53 76
2 88 79(2 行受影响)
*/
update stock set stockje=14 where id=2
select * from part
/*
id partkc partjg
----------- ----------- -----------
1 53 76
2 88 49(2 行受影响)
*/
go
drop table stock,part