首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
设在SQL Server 2008某数据库中有汽车表和销售表,表的定义如下: CREATE TABLE 汽车表( 汽车型号 char(10) PRIMARY KEY, 汽车名称 char(20), 颜色 char(10), 销售总数
设在SQL Server 2008某数据库中有汽车表和销售表,表的定义如下: CREATE TABLE 汽车表( 汽车型号 char(10) PRIMARY KEY, 汽车名称 char(20), 颜色 char(10), 销售总数
admin
2019-07-07
27
问题
设在SQL Server 2008某数据库中有汽车表和销售表,表的定义如下:
CREATE TABLE 汽车表(
汽车型号 char(10) PRIMARY KEY,
汽车名称 char(20),
颜色 char(10),
销售总数量 int default O)
CREATE TABLE 销售表(
汽车型号 char(10),
销售时间 datetime,
销售数量 int,
PRIMARY KEY(汽车型号,销售时间),
FOREIGN KEY(汽车型号)REFERENCES 汽车表(汽车型号))
现要创建一个具有如下功能的后触发型触发器:每当在销售表中插入数据时,自动更新汽车表中相应型号的汽车的销售总数量(假定一次只插入一行数据)。请补全下列代码。
CREATE TRIGGER tri_sales【1】ON【2】AFTER
AS
DECLARE @Sales_Amount int
SET @Sales_Amount=(
SELECT 销售数量 FROM【3】
)
UPDATE 汽车表 SET 销售总数量 = 销售总数量+【4】
WHERE 汽车型号 IN(【5】)
选项
答案
【1】销售表 【2】INSERT 【3】INSERTED 【4】@sales_Amount 【5】SELECT 汽车型号 FROM INSERTED
解析
使用FOR或AFTER选项定义的触发器为后触发器,即只有在引发触发器执行的语句中的操作都已成功执行,并且所有的约束检查也成功完成后,才执行触发器。而使用INSTEADOF选项定义的触发器为前触发器。这种模式的触发器中,指定执行触发器而不是执行引发触发器执行的SQL语句,从而替代引发语句的操作。
在触发器语句中可以使用两个特殊的临时工作表:INSERTED表和DELETED表。这两个表是在用户自行数据的更改操作时,SQL Server自动创建和管理的。其中INSERTED表是用于存储INSERT和UPDATE语句所影响的行的副本。而DELETED表用于存储DELETE和UPDATED语句所影响的行的副本。
建立触发器语法是:
CreateTRIGGER trigger_name
ON{table |view}
{
{ {FOR|AFTER |INSTEAD OF} {[Insert][ ,][Update] }
AS
[{IF Update(column)
[{AND |or}update(column)]
[…n]
{ IF(COLUMNS_UpdateD() {bitwise_operator{updated_bitmask)
{comparison_operator} column_bitmask[…n]
} ]
sql_statement[…n]
}
}
其中:参数trigger_name是触发器的名称。触发器名称必须符合标识符规则,并且在数据库中必须唯一。可以选择是否指定触发器所有者名称。
Table|view是在其上执行触发器的表或视图,有时称为触发器表或触发器视图。可以选择是否指定表或视图的所有者名称。
FOR或AFTER指定触发器只有在触发SQL语句中指定的所有操作都已成功执行后才激发。所有的引用级联操作和约束检查也必须成功完成后,才能执行此触发器。如果仅指定FOR关键字,则AFTER是默认设置。不能在视图上定义AFTER触发器。
INSTEAD OF指定执行触发器而不是执行触发SQL语句,从而替代触发语句的操作。在表或视图上,每个Insert、Update或Delete语句最多可以定义一个INSTEAD OF触发器。然而,可以在每个具有INSTEAD OF触发器的视图上定义视图。INSTEAD OF触发器不能在WITH CHECK OPTION的可更新视图上定义。如果向指定了WITH CHECK OPTION选项的可更新视图添加INSTEAD OF触发器,SQL Server将产生一个错误。用户必须用Alter VIEW删除该选项后才能定义INSTEADOF触发器。
{[Delete][,][Insert][,][Update]}是指定在表或视图上执行哪些数据修改语句时将激活触发器的关键字。必须至少指定一个选项。在触发器定义中允许使用以任意顺序组合的这些关键字。如果指定的选项多于一个,需用逗号分隔这些选项。对于INSTEAD OF触发器,不允许在具有ON Delete级联操作引用关系的表上使用Delete选项。同样,也不允许在具有ON Update级联操作引用关系的表上使用Update选项。
AS是触发器要执行的操作。
sql_statement是触发器的条件和操作。触发器条件指定其他准则,以确定Delete、Insert或Update语句是否导致执行触发器操作。
从触发器的语法中可知,【1】处应该填写的执行触发器的表,【2】处应该填写指定在表或视图上执行哪些数据修改语句时将激活触发器的关键字。从题目“CREATE TRIGGER tri_insert【1】on【2】AFTER”知,本题创建的触发器是是后触发器。该触发器的功能是“每当在销售表中插入一条销售记录时,修改汽车表中对应型号的汽车的销售总数量”。本题是在销售表上建立后触发器,需要执行的是插入语句。故可推导出【1】处应填写:销售表,【2】处应填写:INSERT。
本题中,是使用INSERT和UPDATED关键字对商品表进行操作,因此影响的是INSERTED表的内容。故【3】处应填写INSERTED。
本题要求的是更新汽车表中的销售总数量。更新语句采用UPDATE关键字,其语法格式为:UPDATE表名SET语句,语句为计算销售总数量。因此【4】处应填写:@sales_Amount,【5】处应填写:SELECT汽车型号FROM INSERTED
转载请注明原文地址:https://jikaoti.com/ti/Oi37FFFM
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
规范化理论是关系数据库进行逻辑设计的理论依据。根据这个理论,关系数据库的关系必须满足:其中每一属性都是
下述哪一个数据库系统属于第一代数据库系统7.
数据库设计的概念结构设计阶段,表示概念结构的常用方法和描述工具是
关系模型用【】结构来表示实体及其联系,它是目前应用最广泛的一种数据结构。
在SQL语句定义查询范围时,谓词in可以用来查找属性值属于指定集合的元组,它实现“【】”运算。
第二代数据库系统是指______。
规范化理论是关系数据库进行逻辑设计的理论依据所在,根据这个理论,关系数据库中的关系必须满足:其每一属性都是______。
随机试题
A、指压法B、加压包扎法C、屈曲肢体加垫止血法D、止血带止血法E、填塞止血法控制一般中小动、静脉损伤出血的方法是()
抗霉素A对氧化磷酸化作用的影响机制是()
某热电公司的新建项目工程,占地面积6.5万平方米,建筑面积3.7万平方米,采用中温中压锅炉,单机容量30万千瓦,主要设备包括:循环流化床锅炉、抽凝式汽轮发电机组、钠离子交换器、湿式脱硫除尘器等。主要能源来自于燃煤,同时使用大量的水进行冷却。配套工程有除灰渣
根据核算的经济内容不同,账户分为资产类账户、负债类账户、共同类账户、所有者权益类账户、成本类账户和损益类账户。()
A注册会计师负责审计甲公司2011年度财务报表。在考虑获取管理层书面声明时,A注册会计师遇到下列事项,请代为做出正确的专业判断。(2011年)下列书面文件中,A注册会计师认为可以作为书面声明的是()。
未成年犯
法律是由国家制定或认可并依靠国家强制力保证实施的,反映由特定社会物质生活条件所决定的统治阶级意志,规定权利和义务,以确认、保护和发展有利于统治阶级的社会关系和社会秩序为目的的行为规范体系。马克思主义认为,法律是统治阶级意志的体现。这里的“统治阶级意志”可以
Nooneworddemonstratedtheshiftincorporations’attentioninthemid-1990sfromprocessestopeoplemorevividlythanthesi
(2012年下半年上午试题44~46)每种设计模式都有特定的意图。______(44)模式使得一个对象在其内部状态改变时通过调用另一个类中的方法改变其行为,使这个对象看起来如同修改了它的类。图10.10是采用该模式的有关TCP连接的结构图实例。该模式的核心
在信息时代,计算机的应用非常广泛,主要有如下几大领域:科学计算、信息处理、过程控制、计算机辅助工程、家庭生活和
最新回复
(
0
)