灯具知识:SQL Server2000中关于触发器的问题

   日期:2015-01-20     来源:建材之家    作者:灯饰之家    浏览:50    评论:0    
核心提示:--楼上几位的解答,思路基本是对的,但是不严谨!--问题1CREATE TRIGGER Tri1 ON 进货信息表FOR INSERTASBEGINIF NOT EXISTS(SELECt 图书编号 FROM 图书信息表 A INNER JOIN INSERTED B ON A.图书编号 = B.图书编号)INSERT 图书信息表(图书编号,书名,ISDN,作者,出版社
灯饰之家讯:--楼上几位的解答,思路基本是对的,但是不严谨!

--问题1

CREATE TRIGGER Tri1 ON 进货信息表

FOR INSERT

AS

BEGIN

IF NOT EXISTS(SELECt 图书编号 FROM 图书信息表 A INNER JOIN INSERTED B ON A.图书编号 = B.图书编号)

INSERT 图书信息表(图书编号,书名,ISDN,作者,出版社,图书类型,价格)

SELECt 图书编号,书名,ISDN,作者,出版社,图书类型,价格 FROM INSERTED

IF NOT EXISTS(SELECt 图书编号 FROM 货存信息表 A INNER JOIN INSERTED B ON A.图书编号 = B.图书编号)

INSERT 货存信息表(图书编号,书名,货存量)

SELECt 图书编号,书名,0 FROM INSERTED

UPDATe 货存信息表

SET 货存量 = A.货存量 + B.进货数量

FROM 货存信息表 A INNER JOIN INSERTED B ON A.图书编号 = B.图书编号

END

GO

--问题2 需要多个触发器来实现

CREATE TRIGGER Tri2a ON 进货信息表

AFTER UPDATe

AS

BEGIN

IF UPDATE(进货数量)

UPDATE 货存信息表

SET 货存量 = B.进货数量 - C.售出数量

FROM 货存信息表 A INNER JOIN (SELECt 图书编号,SUM(进货数量) AS 进货数量

FROM 进货信息表

GROUP BY 图书编号) AS B ON A.图书编号 = B.图书编号

INNER JOIN (SELECt 图书编号,SUM(售出数量) AS 售出数量

FROM 售书信息表

GROUP BY 图书编号) AS C ON A.图书编号 = C.图书编号

INNER JOIN INSERTED D ON A.图书编号 = D.图书编号

END

GO

CREATE TRIGGER Tri2b ON 售书信息表

FOR INSERT

AS

BEGIN

UPDATe 货存信息表

SET 货存量 = A.货存量 - B.售出数量

FROM 货存信息表 A INNER JOIN INSERTED B ON A.图书编号 = B.图书编号

END

GO

CREATE TRIGGER Tri2c ON 售书信息表

AFTER UPDATe

AS

BEGIN

IF UPDATE(售出数量)

UPDATE 货存信息表

SET 货存量 = B.进货数量 - C.售出数量

FROM 货存信息表 A INNER JOIN (SELECt 图书编号,SUM(进货数量) AS 进货数量

FROM 进货信息表

GROUP BY 图书编号) AS B ON A.图书编号 = B.图书编号

INNER JOIN (SELECt 图书编号,SUM(售出数量) AS 售出数量

FROM 售书信息表

GROUP BY 图书编号) AS C ON A.图书编号 = C.图书编号

INNER JOIN INSERTED D ON A.图书编号 = D.图书编号

END

GO

--问题3

CREATE TRIGGER Tri3 ON 图书信息表

FOR INSERT

AS

BEGIN

IF EXISTS(SELECt 图书编号 FROM 图书信息表 A INNER JOIN INSERTED B ON A.图书编号 = B.图书编号)

UPDATe 图书信息表

SET 书名 = B.书名 ,

IDSN = B.IDSN ,

作者 = B.作者 ,

出版社 = B.出版社 ,

图书类型 = B.图书类型 ,

价格 = B.价格

FROM 图书信息表 A INNER JOIN INSERTED B ON A.图书编号 = B.图书编号

END

GO

灯饰之家是专注于灯饰,照明,灯具,照明灯具,灯饰大全的新闻资讯和各灯饰,照明,灯具,照明灯具,灯饰大全的装修效果图与建材网络营销等服务,敬请登陆http://dengshi.jc68.com/
【温馨提示】本文内容和观点为作者所有,本站只提供信息存储空间服务,如有涉嫌抄袭/侵权/违规内容请联系QQ:275171283 删除!
 
标签: 照明
打赏
 
为什么高远公司生产的磷化剂能在东莞地区热销长盛不衰呢?因为那是高远化工生产,质量您可以放心;专业做磷化清洗化工药剂12年,拥有先进的技术,成熟的产品,以及一批丰富经量的技术售后团队。而且网络订购更快捷方便,如果量大,还会有优惠,高远化工客服二十四小时在线,为您满意服务;您瞧,又一大批磷化剂起航了,您... 邯郸市锦通铁路配件有限公司,其前身为1986年成立的永年县铁道螺旋道钉厂,地处全国较大的紧固件集散、销售地--邯郸市永年县,毗邻107国道、京珠高速、永河公路交通便捷,是华北地区成立较早,规模较大,集科研、生产、防腐处理、销售于一体的大型铁路配件制造企业。  公司占地5000余平米,拥有先进的大中型机械设备30...
更多>同类照明灯饰资讯
0相关评论

推荐图文
推荐照明灯饰资讯
点击排行
博一建材 | 天津建材 | 北京建材 | 上海建材 | 重庆建材 | 广州建材 | 韶关建材 | 云浮建材 | 中山建材 | 清远建材 | 阳江建材 | 河源建材 | 汕尾建材 | 梅州建材 | 肇庆建材 | 茂名建材 | 湛江建材 | 江门建材 | 珠海建材 | 汕头建材 | 潮州建材 | 揭阳建材 |
网站首页 关于我们  |  联系方式  |  使用协议  |  版权隐私  |  | 网站地图 | 排名推广 | 广告服务 | 积分换礼 | RSS订阅 | 粤ICP备14017808号