设在SQL Server 2008某数据库中有商品表和销售表,表的定义如下: CREATE TABLE商品表( 商品号char(10) PRIMARY KEY, 商品名char(20) NOT NULL, 销售总量int D

admin2018-05-02  35

问题 设在SQL Server 2008某数据库中有商品表和销售表,表的定义如下:
    CREATE TABLE商品表(
    商品号char(10) PRIMARY KEY,
    商品名char(20) NOT NULL,
    销售总量int DEFAULT 0)
    CREATE TABLE销售表(
    商品号char(10),
    销售时间datetime,
    销售数量int NOT NULL,
    PRIMARY KEY(商品号,销售时间),
    FOREIGN KEY(商品号)REFERENCES 商品表(商品号))
    现要创建一个具有如下功能的触发器:每当在销售表中插入一条销售记录时,修改商品表中对应商品的销售总量,假设一次只插入一条销售记录。请补全下列代码。
    CREATE TRIGGER tri_i_insert on 【1】_______FOR【2】_______
    AS
    【3】_______商品表【4】_______销售总量=【5】_______+(SELECT销售数量FROM【6】_______)
    WHERE 商品号 IN(SELECT 商品号 FROM Inserted)

选项

答案【1】销售表 【2】INSERT 【3】UPDATE 【4】SET 【5】商品表.销售总量 【6】INSERTED

解析 从触发器的语法中可知,【1】处应该填写的执行触发器的表,【2】处应该填写指定在表或视图上执行哪些数据修改语句时将激活触发器的关键字。从题目“CREATE TRIGGER tri_insert 【1】FOR【2】”知,本题创建的触发器是是后触发器。该触发器的功能是“每当在销售表中插入一条销售记录时,修改商品表中对应商品的销售总量”。本题是在销售表上建立后触发器,需要执行的是插入语句。故可推导出【1】处应填写销售表,【2】处应填写INSERT。
    根据触发器语法规则知,AS是触发器要执行的操作。本题要求的是更新商品表中的销售总量。更新语句采用UPDATE关键字,其语法格式为:uPDATE表名SET语句。因此【3】处应填写UPDATE,【4】处应填写SET,【5】处应填写商品表.销售总量。
    本题中,是使用INSERT和UPDATED关键字对商品表进行操作,因此影响的是INSERTED表的内容。故【6】处应填写INSERTED。
转载请注明原文地址:https://kaotiyun.com/show/2UlZ777K
0

最新回复(0)