UI/download/index_20100824082341818.txt

(完整代码) 1KB


SQL触发器实例2
/*建立虚拟测试环境,包含:表[卷烟库存表],
表[卷烟销售表]。 请大家注意跟踪这两个表的数据,
体会触发器到底执行了什么业务逻辑,对数据有什么影响。 
为了能更清晰的表述触发器的作用,表结构存在数据冗余,
且不符合第三范式,这里特此说明。 */




GO --业务规则:销售金额 =销售数量 *销售单价业务规则。 

CREATE TABLE卷烟销售表 (卷烟品牌 VARCHAR(40) PRIMARY KEY NOT NULL,购货商 VARCHAR(40) NULL,销售数量 INT NULL,销售单价 MONEY NULL,销售金额 MONEY NULL ) 

GO --业务规则:库存金额 =库存数量 *库存单价业务规则。 

CREATE TABLE卷烟库存表 (卷烟品牌 VARCHAR(40) PRIMARY KEY NOT NULL,库存数量 INT NULL,库存单价 MONEY NULL,库存金额 MONEY NULL ) 
GO --创建触发器,

示例1 /*创建触发器[T_INSERT_卷烟库存表],这个触发器较简单。
 说明:每当[卷烟库存表]发生 INSERT动作,则引发该触发器。 
触发器功能:强制执行业务规则,
保证插入的数据中,
库存金额 =库存数量 *库存单价。 

注意: [INSERTED]、[DELETED]为系统表,不可创建、修改、删除,但可以调用。

 重要:这两个系统表的结构同插入数据的表的结构。 */



 /*针对[卷烟库存表],插入测试数据:
 注意,第一条数据(红塔山新势力)中的数据符合业务规则,
       第二条数据(红塔山人为峰)中,[库存金额]空,不符合业务规则,
       第三条数据(云南映像)中,[库存金额]不等于[库存数量]乘以[库存单价],不符合业务规则。 第四条数据库存数量为0。 

请注意在插入数据后,检查[卷烟库存表]中的数据是否库存金额 =库存数量 *库存单价。

 */ 

INSERT INTO卷烟库存表(卷烟品牌,库存数量,库存单价,库存金额)
SELECT ’红塔山新势力’,100,12,1200 UNION ALL 
SELECT ’红塔山人为峰’,100,22,NULL UNION ALL
SELECT ’云南映像’,100,60,500 UNION ALL 
SELECT ’玉溪’,0,30,0 GO 

--查询数据 


24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。