灯饰照明知识
灯具知识:SQL Server2000中关于触发器的问题
2015-01-20  浏览:51
灯饰之家讯:--楼上几位的解答,思路基本是对的,但是不严谨!

--问题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/
更多»您可能感兴趣的文章:
更多»有关 照明 的产品:
  • 灯饰照明资讯
  • 发表评论 | 0评
  • 评论登陆
  • 移动社区 吊顶之家 灯具之家 木板之家 欧外网 园林头条 环保头条 净化头条 机械头条 幕墙之家 防盗之家 老姚之家 灯饰之家 电气之家 全景头条 照明之家 防水之家 防盗之家 区快洞察 建材 保定建材 邢台建材 邯郸建材 唐山建材 通辽建材 赤峰建材 乌海建材 包头建材 建材之家 张家口建材 秦皇岛建材 呼和浩特建材 阿拉善建材 锡林郭勒建材 兴安盟建材 乌兰察布建材 巴彦淖尔建材 呼伦贝尔建材 鄂尔多斯建材
    (c)2015-2017 Bybc.cn SYSTEM All Rights Reserved