首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
设在SQL Server某数据库中有房屋出租表,表的定义如下: CREATE TABLE 租表( 房屋号 char(10), 出租日期 datetime, 租期 int not null,--月数 到期日期 datet
设在SQL Server某数据库中有房屋出租表,表的定义如下: CREATE TABLE 租表( 房屋号 char(10), 出租日期 datetime, 租期 int not null,--月数 到期日期 datet
admin
2020-05-25
698
问题
设在SQL Server某数据库中有房屋出租表,表的定义如下:
CREATE TABLE 租表(
房屋号 char(10),
出租日期 datetime,
租期 int not null,--月数
到期日期 datetime,
PRIMARY KEY(房屋号,出租日期))
现要创建一个具有如下功能的触发器:每当在出租表中插入一行数据(房屋号,出租日期,租期)时,自动计算出本行数据的“到期日期”。请补全下列代码。
CREATE TRIGGER tri ON【1】FOR INSERT
AS
【2】出租表SET到期日期=dateadd(【3】,租期,出租日期)
WHERE房屋号=(SELECT房屋号FROM【4】)
and【5】
选项
答案
【1】出租表 【2】UPDATE 【3】MONTH 【4】INSERTED 【5】出租日期=(SELECT出租日期FROM INSERTED)或(SELECT出租日期FROM IN SERTED)=出租日期
解析
从触发器的语法中可知,【1】处应该填写执行触发器的表,【2】处应该填写指定在表或视图上执行哪些数据修改语句时将激活触发器的关键字。从题目“FOR INSERT”可知,本题创建的触发器是是后触发器。该触发器的功能是“每当在出租表中插入一行数据(房屋号,出租日期,租期)时,自动计算出本行数据的“到期日期”。本题是在出租表上建立后触发器,需要执行的是更新语句。故可推导出【1】处应填写:出租表,【2】处应填写:UPDATE。
本题要求的是更新出租表中的到期日期。更新语句采用UPDATE关键字,其语法格式为:UPDATE表名SET语句,语句为计算到期日期,租期以月计算,故【3】处应填写:MONTH。
本题使用INSERT和UPDATE关键字对出租表进行操作,因此影响的是INSERTED表的内容。故【4】处应填写:INSERTED。
本题要求的是更新出租表中的到期日期,所以查询时,要筛选出满足条件的房屋号与出租日期,故【5】处应填写:出租日期=(SELECT出租日期FROM INSERTED)或(SELECT出租日期FROM INSERTED)=出租日期
使用FOR或AFTER选项定义的触发器为后触发器,即只有在引发触发器执行的语句中的操作都已成功执行,并且所有的约束检查也成功完成后,才执行触发器。而使用INSTEAD OF选项定义的触发器为前触发器。这种模式的触发器中,指定执行触发器而不是执行引发触发器执行的SQL语句,从而替代引发语句的操作。
在触发器语句中可以使用两个特殊的临时工作表:INSERTED表和DELETED表。这两个表是在用户自行数据的更改操作时,SQL Server自动创建和管理的。其中INSERTED表是用于存储INSERT和UPDATE语句所影响的行的副本。而DELETED表用于存储DELETE和UPDATED语句所影响的行的副本。
建立触发器语法是:
Create TRIGGER trigger_name
ON{table|view}
{
{{FOR|AFTER|INSTEAD OF}{[Insert][,][Update]}
AS
[{IF Updalte(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或Updalte语句是否导致执行触发器操作。
转载请注明原文地址:https://www.kaotiyun.com/show/3zID777K
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
语言本身就是人类文化长期______的智慧结晶。一切人类创造的思想文化成果都需要通过语言来深度表达和精彩______。如果将文化视为人类精神或思维自觉______的形形色色的神奇“痕迹”,那么,语言就是这种“痕迹”中最鲜活、最深邃和最久远的核心部分。填入
下列关于胎儿与母体关系的表述错误的是:
精准医疗是指以个体化医疗为基础,通过基因组、蛋白质组等技术,对大样本人群与特定疾病类型进行生物标记物的分析与鉴定、验证与应用,从而精确寻找到疾病的原因和治疗的靶点,最终实现对疾病和特定患者进行个性化精确治疗。根据上述定义,下列选项不属于精准医疗的是:
2007年我国城市、县镇、农村居民安全感得分最接近的生活领域是( )下列关于2007年我国城乡居民各种生活领域安全感得分的说法不正确的是( )
刚刚来到单位,小赵对你做事指手画脚,小李对你私生活非常感兴趣。小孙特别热情,第一次见你就称兄道弟。你怎么处理和他们的关系?(2011年6月20日吉林省公务员面试真题)
领导让你和小李举办晚会。但是小李在上次的晚会过程中犯了错误,领导对小李印象不佳。小李不配合,你怎么做小李的工作?(2012年1月15日国考外交部面试真题)
古人对于我国姓氏的来历有如下阐述“氏于国,则齐鲁秦吴;氏于谥,则文武成宜;氏于事,则乙匠淘……”由此可以推断,王、侯、公孙等姓氏应源自()。
由于某化肥厂长期排污,该地域内两个村庄几年来多人患有罕见的严重疾病,根据《环境保护法》的规定,下列哪一选项是错误的?()
某校五年级有100名学生参加活动,男生两人一组,女生三人一组,共有41组。那么男、女生各有多少名?
在SQLServer2008中,主要数据文件必须建立在【11】文件组中。
随机试题
阅读苏轼《前赤壁赋》中的一段文字,然后回答下列小题。苏子曰:“客亦知夫水与月乎?逝者如斯,而未尝往也;盈虚者如彼,而卒莫消长也。盖将自其变者而观之,则天地曾不能以一瞬;自其不变者而观之,则物与我皆无尽也,而又何羡乎?且夫天地之间,物各有主,苟非吾
宋代的陈无择创立三因学说,将饮食劳倦,跌仆金刃归为
采集粪便标本检查阿米巴原虫前,将便盆加热的目的是
某男子在人来人往的马路上裸奔,经警察多次给以行政处罚后仍不改悔,一次又在马路上裸奔,遭多人围观,被警察抓获。下列正确的选项有:
A企业2004年6气购入设备一台,买价10万元,增值税1.7万元,支付的运费等其他费用共计3.3万元,当月设备交付使用,预计可使用10年,预计净残值率为5%。企业采用平均年限法计提折旧,则该设备当年应提折旧额为()元。
根据《个人所得税法》及其实施条例的规定,以下各项所得,()适用超额累进税率计征个人所得税。
“满纸荒唐言,一把辛酸泪。都云作者痴,谁解其中味?”是我国古典文学名著《红楼梦》的开篇诗。()
在本次学术座谈会中,张嘉、莫非、刘涛应邀出席并都受到主席的嘉奖记功,记功分为一等功、二等功、三等功。三人均对受到的记功闭口不言,但神通广大的记者仍对三人的获奖情况找到了蛛丝马迹,据悉最终的嘉奖记功符合以下条件:(1)如果张嘉记二等功,则莫非记三等功。(
ManyforeignerswhohavenotvisitedBritaincallalltheinhabitantsEnglish,fortheyareusedtothinkingoftheBritishIsle
下列关于C++预定义流对象的叙述中,正确的是
最新回复
(
0
)