第6章_存储过程与触发器练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
有教师表 (教师号,教师名,职称,基本工资 ) ,其中基本工资的取值与教师职称 有关。
实现这个约束的可行方案是 ( ) 。
A 在教师表上定义一个视图
B 在教师表上定义一个存储过程
C 在教师表上定义插入和修改操作的触发器
D 在教师表上定义一个标量函数
参考答案
C
在SQL SERVE 中,执行带参数的过程,正确的方法为(
)
A 过程名 参数
B 过程名(参数)
C 过程名 =参数
D ABC 匀可
参考答案
A
在SQL SERVE 服务器上,存储过程是一组预先定义并( Transact-SQL 语句。
A 保存
B 解释
C 编译
D 编写 参考答案 C
在 SQL Server 中,触发器不具有(
A INSERT 触发器
B UPDATE* 发器
C DELETE 发器
D SELECT 触发器 参考答案 D
)的 )类型
( )允许用户定义一组操作,这些操作通过对指定的表进行删除、
插入和更新命令来执行或触发。
A存储过程
B规则
C触发器
D索引参考答案
C
为了使用输出参数,需要在CREATPROCEDU语句中指定关键字( )
A OPTION
B OUTPUT
C CHECK
D DEFAULT 参考答案
B
)语句用于创建触发器
A CREATE PROCEDURE
B CREATE TRIGGER
C ALTER TRIGGER
D DROP TRIGGER
参考答案
B
下列()语句用于删除触发器。
A CREATE PROCEDURE
B CREATE TRIGGER
C ALTER TRIGGER
D DROP TRIGGER 参考答案
D
)语句用于删除存储过程
A CREATE PROCEDURE
B CREATE TABLE
C DROP PROCEDURE
D其他参考答案
C
下列()语句用于创建存储过程
A CREATE PROCEDURE
B CREATE TABLE
C DROP PROCEDURE
D其他参考答案
A
sp_help属于哪一种存储过程()?
A系统存储过程
B用户定义存储过程
C扩展存储过程
D其他参考答案
A
以下语句创建的触发器是当对表A进行(
)操作时触发CREATE TRIGGER ABC ON 表A
FOR INSERT, UPDATE, DELETE
AS
A只是修改
B只是插入
C只是删除
D修改,插入,删除参考答案
D
()允许用户定义一组操作,这些操作通过对指定的表进行删除、或触发。
A存储过程
B视图
C触发器
D索引
参考答案
C
下列可以查看表的行数以及表使用的存储空间信息的系统存储过程是(
A sq_spaceused
B sq_depends
C sq_help
D sq_re name
参考答案
A
以下哪个不是存储过程的优点()
A实现模块化编程,一个存储过程可以被多个用户共享和重用。
B可以加快程序的运行速度。
C可以增加网络的流量。
D可以提高数据库的安全性。
参考答案
C
以下哪个不是存储过程的优点()
A实现模块化编程,一个存储过程可以被多个用户共享和重用。
B可以加快程序的运行速度。
C可以增加网络的流量。
D可以提高数据库的安全性。
参考答案
C
替代触发器(in stead of )是在触发触发器的修改操作(
A执行后插入和更新命令来执行
)执行
B之前
C停止执行时
D同时参考答案
B
以下不属于存储过程特点的是(
A在删除所涉及表时,同时被删除
B代码执行效率高
C数据查询效率高
D模块化编程
参考答案
A
以下不属于触发器特点的是()
A基于一个表创建,可以针对多个表进行操作
B被触发自动执行
C可以带参数执行
D可以实施更复杂的数据完整性约束
参考答案
C
以下()不是触发触发器的操作。
A SELECT
B UPDATE
C DELETE
D INSERT
参考答案
A
关于存储过程和触发器的说法,正确的是()。
A都是SQL Server数据库对象
B都可以为用户直接调用
C都可以带参数
D删除表时,都被自动删除
参考答案
A
如果需要在插入表的记录时自动执行一些操作,常用的是()。
A存储过程
B函数
C触发器
D存储过程与函数
参考答案
C
对SQL Server中的存储过程,下列说法中正确的是:存储过程()。
A不能有输入参数
B没有返回值
C可以自动被执行
D可以嵌套使用
参考答案
D
存储过程经过了一次创建以后,可以被调用()次。
A 1
B 2
C 255
D无数
参考答案
D
以下()不是存储过程的优点。
A执行速度快
B模块化的设计
C会自动被触发
D保证系统的安全性
参考答案
C
下面关于触发器的描述,错误的是()。
A触发器是一种特殊的存储过程,用户可以直接调用
B触发器表和deleted表没有共同记录
C触发器可以用来定义比CHECK约束更复杂的规则
D删除触发器可以使用DROP TRIGGER命令,也可以使用企业管理器参考答案A
SQL Server为每个触发器创建了两个临时表,它们是()。
A Updated 和Deleted
B Inserted 和Deleted
C Updated 和Inserted
D Updated 和Selected
参考答案
B
在SQL语言中,建立存储过程的命令是()。
A CREATE PROCEDURE
B CREATE RULE
C CREATE DURE
D CREAT
E FILE
参考答案
A
已定义存储过程AB,带有一个参数@stname varchar(20),正确的执行方法为()。
A EXEC A
B 吴小雨?
B EXE
C AB = 吴小雨?
C EXEC AB (吴小雨)
D其他3种都可以
参考答案
A
对于下面的存储过程:
CREATE PROCEDURE Myp1 @p Int
AS
SELECT St_name, Age
FROM Stude nts
WHERE Age=@p
假如要在Students表中查找年龄是20岁的学生,()可以正确的调用这个存储过程。
A EXEC Myp1 @p= 20'
B EXE
C Myp1 @p=20
C EXEC Myp1= 20'
D EXEC Myp 仁20
参考答案
B
当某个表被删除后,该表上的触发器被自动删除。
[参考答案]正确
SQL Server为每个触发器创建了两个临时表,它们是updated和deleted。
[参考答案]错误
存储过程是存储在服务器上的一组预编译的Transact-SQL语句。
[参考答案]正确
在SQL SERVER中,触发器的执行是在数据的插入、更新或删除之前执行的。
[参考答案]错误
若要修改一个存储过程,可以先删除该存储过程,再重新创建。
[参考答案]正确
触发器与表紧密相连,可以看作表定义的一部分。
[参考答案]正确
临时存储过程总是在master数据库中创建。
通常分为局部临时存储过程和全局临时存储过程。
[参考答案]错误
某个表被删除后,该表上的所有触发器将自动被删除。
[参考答案]正确
SQL Server中的存储过程具有5种类型。
[参考答案]正确
存储过程的输出结果可以传递给一个变量。
[参考答案]正确
触发器是可在程序中被调用执行。
[参考答案]错误
存储过程是存储在服务器上的一组预编译的Transcat-SQL语句。
[参考答案]正确
创建触发器的时候可以不是表的所有者或数据库的所有者。
[参考答案]错误
每个存储过程向调用方返回一个整数返回代码。
如果存储过程没有显式设置返回代码的值,则返回代码为0,表示成功。
[参考答案]正确
在SQL Server中,触发器的执行通过EXECUTE命令实现。
[参考答案]错误
在SQL SERVER中,替代触发器的执行是在数据变动之前被触发,对于每个触发操作只能定义一个替代触发器。
[参考答案]正确
使用存储过程可以减少网络流量。
[考答案]正确
存储过程使代码具有重用性。
[参考答案]正确
触发器不能被调用,它可以自动执行。
[参考答案]正确
在SQL SERVER 中,触发器的执行是在数据的插入、更新或删除之前执行的。
[参考答案]错误
创建存储过程的命令关键字 CREATE PROCEDU 不可以缩写。
[参考答案]错误
触发器可以在视图上定义。
[参考答案]错误 触发器被激活后自动创建 deleted 和inserted 两个临时表。
[参考答案]错误
ROLLBACK TRANSACTION 的意思是回滚事务。
[参考答案]正确
触发器用来定义比 CHECK 约束更复杂的规则或要求。
[参考答案]正确
通过语句ALTERPROCEDURE 改存储过程与删除存储过程然后再新建一个同名存 储过程的效果是相同的。
[参考答案]错误
某SQL Server 2000数据库中两张表:商品表(商品号,商品名,商品类型, 价格)和销售表(商品号,销售时间,销售数量,销售单价)。
用户需统计指定 年份每类商品的销售总数量和销售总利润,要求只列出销售总利润最多的前三类 商品的商品类别、销售总数量和销售总利润。
为了完成该统计操作,请按要求将 下面的存储过程补充完整。
CREATE PROC p_Sum @year INT AS
SELECT (__1__ )商品类别, (__2__ ) AS 销售总利润
FROM 商品表 JOIN 销售表 ON 商品表. 商品号=销售表.商品号 WHERE year (销售时间) GROUP BY 商品类别
ORDER BY 销售总利润(__3__) 参考答案 1: TOP 3
SUM 销售数量) AS 销售总数量,
@year
2:(销售单价-成本价)*SUM(销售数量)
3: DESC降序)
在SQL Server 2000中,设有顾客表(顾客号,顾客名,所在地区,年龄), 应用系统中需统计指定地区的顾客人数和平均年龄。
请补全下列存储过程代码以完成该功能。
CREATE PROC P_Count @area varchar(20)
AS
SELECT COUNT(*) AS 人数,(__1__ ) AS 平均年龄FROM 顾客表WHERE所在地区=@area
参考答案
1:AVG年龄)
以下代码创建和执行存储过程proc_score,查询S_C_Info表中C_No为“ 0002” 的St_ID, Score 等信息。
CREATE PROC pro_score
AS
SELECT St_ID, __1__
FROM S_C_I nfo
WHERE C_No=0002'
执行存储过程proc_score命令为:
EXEC __2__
参考答案
1: Score
2: proc_score
在student_db数据库中创建一个名为“ tr_P1 ”的存储过程,实现根据学生学号,查询该学生的选修课程情况,其中包括该学生的学号、姓名、课程名、课程类型、成绩。
CREATE __1__ tr_P1 @stlD varchar(IO)
AS
SELECT St_I nfo.St_ID, St_I nfo.St_Name, C」n fo.C_Name, C」n fo.C_Type,
S_C」n fo.Score
FROM St_lnfo, S_C」nfo, C」nfo
WHERE St_I nfo.St_ID = S_C_I nfo.St_ID AND S_C_I nfo.C_No =
C_ln fo.C_No
调用该存储过程查询“ 0403060111”学生的选修课程情况。
__2__ ' 040306011T
参考答案
1: PROCEDURE 或PROC
2: EXECUTE tr_P1 或EXEC tr_P1
触发器主要用于强制复杂的__1—或要求。
参考答案
1:业务规则
创建存储过程实际是对存储过程进行定义的过程,主要包含存储过程名称、__1
和存储过程的主体部分。
参考答案
1:参数
SQLServer中的存储过程具有_1__、用户自定义存储过程、临时存储过程、远程存储过程、__2__5种类型。
参考答案
1:系统存储过程2:扩展存储过程
有表C_lnfo(C_No, C_NameC_Type Credit),各属性的含义为课程号、课程名称、课程类别、学分,为该表创建一个触发器tr_AutoSetType,以便插入数据时将课程类别修改为“必修”。
CREATE TRIGGER tr_AutoSetType ON C」nfo
__1__
AS
UPDATE C_lnfo SET C_Type='必修’
参考答案
1:FOR INSERT
用户对数据进行添加、修改和删除时,自动执行的存储过程称为__1__0
参考答案
1:触发器
触发器是一种特殊类型的_1__,但不由用户直接调用,而是通过事件被执行。
参考答案
1:存储过程
与触发器相关的虚拟表主要有1表和Deleted表两种。
参考答案
1: Inserted 或INSERTED 或
in serted
替代触发器(INSTEADOF)将在数据变动前被触发,对于每个触发操作,只能定义
__1__个INSTEAD OF触发器。
参考答案
1: 一或1
对存储在数据库中的存储过程,可以使用—1—命令或直接按其名称执行。
(答题时,英文使用大写形式)
参考答案
1:EXEC 或EXECUTE
存储过程是一种数据库对象,将一组SQL语句和控制流语句的集合以一个存储单兀的形式保存在1上。
参考答案
1:服务器
扩展存储过程以“ xp_”为前缀定义,只能添加到_1_ 数据库中。
(答题时,英文使用小写)
参考答案
1: master
删除表中记录后,被删除的记录临时存储在__1—表中。
(答题时,英文使用小写)
参考答案
1: deleted
读程序填空。
要求创建一个存储过程myproc,查询指定班级中选修指定课程的学生人数,并将查询结果通过参数返回。
以下过程调用存储过程查询“材料科学0601 ”班中选修“C语音程序设计基础”的学生人数:
CREATE PROCEDURE [myproc]
@class name VARCHAR(20), @cn ame VARCHAR(20), @cou nt INT OUTPUT
AS
SELECT COUNT(*)
FROM S_C_lnfo sc, st_i nfo s, c_info c
WHERE c.c_no=sc.c_no AND s.st_id=sc.st_id AND s.Cl_Name=@class name AND c.C_Name=@c name
执行这个存储过程的语句段为:
DECLARE @cou nt int
EXEC myproc '材料科学0601班’,’语言程序设计基础’,__1__
print @co unt
参考答案
1: @count OUTPUT
在存储过程中,使用_1_命令可以无条件退出过程回到调用程序。
参考答案
1:RETURN
要删除一个存储过程,则可以使用的语句是:__1__ PROCEDURE
参考答案
1:DROP
在SQL Server中,当数据表被修改时,系统可以自动执行的数据库对象
是__1__ o
参考答案
1: TRIGGER 或触发器
SQLServer触发器主要是针对INSERT DELETE __1__ 语句创建的。
(使用英文大写答题)
参考答案
1:
UPDATE
当对表进行__1__ 操作时触发器不会自动执行。
参考答案
1:查询或SELECT
触发器定义在一个表中,当在表中执行_1_、UPDAT或DELET操作时被触发自动执行。
参考答案
1: INSERT
在SQL Server服务器上,存储过程是一组预先定义并__1__的Transact-SQL语句。
参考答案
1:编译
如同表和视图的修改,当用户需要对存储过程进行修改时,可以通过_1__PR0CEDU命盼实现。
参考答案
1:ALTER。