第6章 存储过程与触发器练习题试题知识点Word下载.docx
- 文档编号:20521925
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:19
- 大小:20.34KB
第6章 存储过程与触发器练习题试题知识点Word下载.docx
《第6章 存储过程与触发器练习题试题知识点Word下载.docx》由会员分享,可在线阅读,更多相关《第6章 存储过程与触发器练习题试题知识点Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
)允许用户定义一组操作,这些操作通过对指定的表进行删除、插入和更新命令来执行或触发。
存储过程
规则
触发器
索引
为了使用输出参数,需要在CREATEPROCEDURE语句中指定关键字(
OPTION
OUTPUT
CHECK
DEFAULT
B
下列(
)语句用于创建触发器。
CREATEPROCEDURE
CREATETRIGGER
ALTERTRIGGER
DROPTRIGGER
)语句用于删除触发器。
)语句用于删除存储过程。
CREATETABLE
DROPPROCEDURE
其他
)语句用于创建存储过程。
sp_help属于哪一种存储过程(
)?
系统存储过程
用户定义存储过程
扩展存储过程
以下语句创建的触发器是当对表A进行(
)操作时触发。
CREATE
TRIGGER
ABC
ON
表A
FOR
INSERT,
UPDATE,
DELETE
AS
……
只是修改
只是插入
只是删除
修改,插入,删除
)允许用户定义一组操作,这些操作通过对指定的表进行删除、插入和更新命令来执行或触发。
视图
下列可以查看表的行数以及表使用的存储空间信息的系统存储过程是(
)。
sq_spaceused
sq_depends
sq_help
sq_rename
以下哪个不是存储过程的优点(
)
实现模块化编程,一个存储过程可以被多个用户共享和重用。
可以加快程序的运行速度。
可以增加网络的流量。
可以提高数据库的安全性。
替代触发器(insteadof)是在触发触发器的修改操作(
)执行。
执行后
之前
停止执行时
同时
以下不属于存储过程特点的是(
在删除所涉及表时,同时被删除
代码执行效率高
数据查询效率高
模块化编程
以下不属于触发器特点的是(
基于一个表创建,可以针对多个表进行操作
被触发自动执行
可以带参数执行
可以实施更复杂的数据完整性约束
以下(
)不是触发触发器的操作。
SELECT
UPDATE
DELETE
INSERT
关于存储过程和触发器的说法,正确的是(
都是SQLServer数据库对象
都可以为用户直接调用
都可以带参数
删除表时,都被自动删除
如果需要在插入表的记录时自动执行一些操作,常用的是(
函数
存储过程与函数
对SQLServer中的存储过程,下列说法中正确的是:
存储过程(
不能有输入参数
没有返回值
可以自动被执行
可以嵌套使用
存储过程经过了一次创建以后,可以被调用(
)次。
1
2
255
无数
)不是存储过程的优点。
执行速度快
模块化的设计
会自动被触发
保证系统的安全性
下面关于触发器的描述,错误的是(
触发器是一种特殊的存储过程,用户可以直接调用
触发器表和deleted表没有共同记录
触发器可以用来定义比CHECK约束更复杂的规则
删除触发器可以使用DROPTRIGGER命令,也可以使用企业管理器
SQLServer为每个触发器创建了两个临时表,它们是(
Updated和Deleted
Inserted和Deleted
Updated和Inserted
Updated和Selected
在SQL语言中,建立存储过程的命令是(
CREATERULE
CREATEDURE
CREATEFILE
已定义存储过程AB,带有一个参数@stnamevarchar(20),正确的执行方法为(
EXEC
ABˈ吴小雨ˈ
AB=ˈ吴小雨ˈ
AB(吴小雨)
其他3种都可以
对于下面的存储过程:
CREATEPROCEDUREMyp1@pInt
AS
SELECTSt_name,Age
FROMStudents
WHEREAge=@p
假如要在Students表中查找年龄是20岁的学生,(
)可以正确的调用这个存储过程。
Myp1
@p=´
20´
@p=20
Myp1=´
Myp1=20
当某个表被删除后,该表上的触发器被自动删除。
[参考答案]
正确
SQLServer为每个触发器创建了两个临时表,它们是updated和deleted。
错误
存储过程是存储在服务器上的一组预编译的Transact-SQL语句。
在SQLSERVER中,触发器的执行是在数据的插入、更新或删除之前执行的。
若要修改一个存储过程,可以先删除该存储过程,再重新创建。
触发器与表紧密相连,可以看作表定义的一部分。
临时存储过程总是在master数据库中创建。
通常分为局部临时存储过程和全局临时存储过程。
某个表被删除后,该表上的所有触发器将自动被删除。
SQLServer中的存储过程具有5种类型。
存储过程的输出结果可以传递给一个变量。
触发器是可在程序中被调用执行。
存储过程是存储在服务器上的一组预编译的Transcat-SQL语句。
创建触发器的时候可以不是表的所有者或数据库的所有者。
每个存储过程向调用方返回一个整数返回代码。
如果存储过程没有显式设置返回代码的值,则返回代码为0,表示成功。
在SQLServer中,触发器的执行通过EXECUTE命令实现。
在SQLSERVER中,替代触发器的执行是在数据变动之前被触发,对于每个触发操作只能定义一个替代触发器。
使用存储过程可以减少网络流量。
[考答案]
存储过程使代码具有重用性。
触发器不能被调用,它可以自动执行。
在SQL
SERVER中,触发器的执行是在数据的插入、更新或删除之前执行的。
创建存储过程的命令关键字CREATEPROCEDURE不可以缩写。
触发器可以在视图上定义。
触发器被激活后自动创建deleted和inserted两个临时表。
ROLLBACKTRANSACTION的意思是回滚事务。
触发器用来定义比CHECK约束更复杂的规则或要求。
通过语句ALTERPROCEDURE修改存储过程与删除存储过程然后再新建一个同名存储过程的效果是相同的。
某SQL
Server
2000数据库中两张表:
商品表(商品号,商品名,商品类型,价格)和销售表(商品号,销售时间,销售数量,销售单价)。
用户需统计指定年份每类商品的销售总数量和销售总利润,要求只列出销售总利润最多的前三类商品的商品类别、销售总数量和销售总利润。
为了完成该统计操作,请按要求将下面的存储过程补充完整。
CREATE
PROC
p_Sum
@year
INT
SELECT(__1__
)
商品类别,SUM(销售数量)
AS
销售总数量,(__2__
AS
销售总利润
FROM
商品表
JOIN
销售表
ON
商品表.
商品号=销售表.商品号
WHERE
year(销售时间)
=
@year
GROUP
BY
商品类别
ORDER
销售总利润(__3__)
1:
TOP
3
2:
(销售单价-成本价)*SUM(销售数量)
3:
DESC(降序)
2000中,设有顾客表(顾客号,
顾客名,
所在地区,
年龄),应用系统中需统计指定地区的顾客人数和平均年龄。
请补全下列存储过程代码以完成该功能。
CREATE
PROC
P_Count
@area
varchar(20)
AS
SELECT
COUNT(*)AS
人数,(__1__
)AS平均年龄FROM
顾客表WHERE
所在地区=@area
AVG(年龄)
以下代码创建和执行存储过程proc_score,查询S_C_Info表中C_No为“0002”的St_ID,Score等信息。
pro_score
SELECTSt_ID,
__1__
FROMS_C_Info
WHEREC_No=‘0002’
执行存储过程proc_score命令为:
__2__
Score
proc_score
在student_db数据库中创建一个名为“tr_P1”的存储过程,实现根据学生学号,查询该学生的选修课程情况,其中包括该学生的学号、姓名、课程名、课程类型、成绩。
__1__
tr_P1
@stID
varchar(10)
SELECTSt_Info.St_ID,St_Info.St_Name,C_Info.C_Name,C_Info.C_Type,S_C_Info.Score
FROMSt_Info,S_C_Info,C_Info
WHERESt_Info.St_ID=S_C_Info.St_ID
AND
S_C_Info.C_No=C_Info.C_No
调用该存储过程查询“0403060111”学生的选修课程情况。
´
0403060111´
PROCEDURE
或
PROC
EXECUTEtr_P1
EXECtr_P1
触发器主要用于强制复杂的__1__或要求。
业务规则
创建存储过程实际是对存储过程进行定义的过程,主要包含存储过程名称、__1__和存储过程的主体部分。
参数
SQLServer中的存储过程具有__1__、用户自定义存储过程、临时存储过程、远程存储过程、__2__5种类型。
有表C_Info(C_No,C_Name,C_Type,Credit),各属性的含义为课程号、课程名称、课程类别、学分,为该表创建一个触发器tr_AutoSetType,以便插入数据时将课程类别修改为“必修”。
tr_AutoSetType
C_Info
__1__
UPDATEC_InfoSETC_Type=‘必修’
FORINSERT
用户对数据进行添加、修改和删除时,自动执行的存储过程称为__1__。
触发器是一种特殊类型的__1__,但不由用户直接调用,而是通过事件被执行。
与触发器相关的虚拟表主要有__1__表和Deleted表两种。
Inserted
INSERTED
inserted
替代触发器(INSTEADOF)将在数据变动前被触发,对于每个触发操作,只能定义__1__个INSTEADOF触发器。
一
对存储在数据库中的存储过程,可以使用__1__命令或直接按其名称执行。
(答题时,英文使用大写形式)
EXECUTE
存储过程是一种数据库对象,将一组SQL语句和控制流语句的集合以一个存储单元的形式保存在__1__上。
服务器
扩展存储过程以“xp_”为前缀定义,只能添加到__1__数据库中。
(答题时,英文使用小写)
master
删除表中记录后,被删除的记录临时存储在__1__表中。
deleted
读程序填空。
要求创建一个存储过程myproc,查询指定班级中选修指定课程的学生人数,并将查询结果通过参数返回。
以下过程调用存储过程查询“材料科学0601”班中选修“C语音程序设计基础”的学生人数:
CREATEPROCEDURE[myproc]
@classnameVARCHAR(20),@cnameVARCHAR(20),@countINTOUTPUT
SELECTCOUNT(*)
FROMS_C_Infosc,st_infos,c_infoc
WHEREc.c_no=sc.c_noANDs.st_id=sc.st_idANDs.Cl_Name=@classnameANDc.C_Name=@cname
执行这个存储过程的语句段为:
DECLARE@countint
EXECmyproc
´
材料科学0601班´
´
C语言程序设计基础´
__1__
print@count
@countOUTPUT
在存储过程中,使用__1__命令可以无条件退出过程回到调用程序。
RETURN
要删除一个存储过程,则可以使用的语句是:
__1__PROCEDURE
DROP
在SQLServer中,当数据表被修改时,系统可以自动执行的数据库对象是
。
TRIGGER
SQLServer触发器主要是针对INSERT、DELETE、__1__
语句创建的。
(使用英文大写答题)
当对表进行__1__
操作时触发器不会自动执行。
查询
触发器定义在一个表中,当在表中执行__1__、UPDATE或DELETE操作时被触发自动执行。
在SQLServer服务器上,存储过程是一组预先定义并__1__的Transact-SQL语句。
如同表和视图的修改,当用户需要对存储过程进行修改时,可以通过__1__PROCEDURE命令实现。
ALTER
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第6章 存储过程与触发器练习题试题知识点 存储 过程 触发器 练习题 试题 知识点