计算机三级数据库后台编程技术练习题(二)、下列关于存储过程的说法、下列在T表的DELETES作上建立后触发型触发器的语句开始部分、下列定义该存储过程的接口、下列关于触发器的说法、关于存储过程的说法

16.下列关于存储过程的说法,正确的是
A、一个存储过程可以有多个输入参数,但只能有一个输出参数
B、一个存储过程可以同时有输入参数和输出参数
C、一个存储过程不能有多个输出参数
D、一个存储过程不能有多个输入参数
参考答案为B

解析:存储过程与其他程序设计语言中的子程序或函数很类似。存储过程可以接受多个输入参数,并将多个值返回给调用过程(输出);包含执行数据库操作的编程语句;向调用过程返回状态值。

17.下列关于SQL Server数据库空间的说法,正确的是
A、数据库创建后可以手工缩小数据文件和日志文件的空间
B、数据库创建后可以手工缩小数据文件的空间,但不能缩小日志文件的空间
C、数据库创建后数据文件和日志文件的空间都不能被手工缩小
D、数据库创建后可以手工缩小日志文件的空间,但不能缩小数据文件的空间
参考答案为A

解析:收缩数据库就是释放数据库中未使用的空间,并将释放的空间交还给操作系统。数据文件和日志文件的空间都可以收缩。

18.在SQL Server中,若要授予用户U1在DB1数据库中具有创建视图的权限,下列授权语句正确的是
A、GRANT CREATE VIEW To U1
B、GRANT CREATE VIEW ON DB1 TO U1
C、GRANT U1 CREATE VIEW ON DB1
D、GRANT U1 CREATE VIEW
参考答案为A

解析:对象级授权命令中,视图权限中没有create权限,所以这里是语句级授权。
授予语句级别权限的GRANT语句的简化语法格式如下:
GRANT {ALL | <statement_permission>[,…n]}
TO <database_principal>[,…n]
由语法可知,应选A,而不能选B(B选项是对象级授权命令)。

19.下列关于sQLServer中db_datawriter角色的说法,正确的是
A、该角色是数据库级角色,具有查询、插入、删除和更改数据库中用户数据的权限
B、该角色是服务器级角色,具有插入、删除和更改服务器中用户数据的权限
C、该角色是服务器级角色,具有查询、插入、删除和更改服务器中用户数据的权限
D、该角色是数据库级角色,具有插入、删除和更改数据库中用户数据的权限
参考答案为D

解析:角色分为服务器级角色和数据库级角色。db_datawriter角色属于数据库级角色,具有插入、删除和更改数据库中所有用户数据的权限。

20.下列关于存储过程的说法,正确的是
A、使用存储过程会降低数据操作效率
B、存储过程是存储在数据库服务器端的可以被调用执行的代码
C、存储过程是存储在客户端应用程序中的可以被调用执行的代码
D、使用存储过程只能实现数据查询操作
参考答案为B

解析:存储过程的好处是允许模块化程序设计、改善性能、减少网络流量、增强应用程序的安全性,故A错。
所谓存储过程,实际上是存储在数据库中供用户程序调用的子程序,故B对C错。
存储过程是程序,可实现但不限于数据查询。D错。

21.设在SQLServer中有如下定义触发器的语句:
CREATE TRIGGER tri_1
ON T1 FOR INSERT,DELETE
AS ……
下列关于该触发器作用的说法,正确的是
A、该触发器定义有误,不能定义一个由多个操作引发执行的前触发型触发器
B、在T1表上定义了一个由插入或删除操作引发的前触发型触发器
C、该触发器定义有误,不能定义一个由多个操作引发执行的后触发型触发器
D、在T1表上定义了一个由插入或删除操作引发的后触发型触发器
参考答案为D

解析:由触发器的语法可知,语句语法无误,AC错。由于题中有FOR,FOR和AFTER定义的是后触发型触发器,故答案为D。

22.下列关于触发器的说法,正确的是
A、触发器主要用于防止非法用户访问
B、利用触发器可以实施业务规则
C、利用触发器可以提高数据查询性能
D、利用触发器可以提高数据更改性能
参考答案为B

解析:考察 触发器的基本概念
触发器通常用于保证业务规则和数据完整性。
故本题答案为B。

23.设在SQL Server 2008中,要定义一个有两个输入参数a和b、一个输出参数c的存储过程,a、b、c均为整型,a的默认值为100。下列关于定义存储过程的接口正确的是
A、CREATE PROC P1
@a int = 100, @b int,@c int output
B、CREATE PROC P1
@a int default 100, @b int,@c int output
C、CREATE PROC P1
@a =100 int,@b int,@c int output
D、CREATE PROC P1
@a default 100 int,@b int,output @c int
参考答案为A

解析:考察 创建存储过程
创建存储过程的语法如下:
CREATE PROC 存储过程名
@存储过程参数1 存储过程参数1的类型,@存储过程参数2,存储过程参数2的类型, @存储过程参数3,存储过程参数3的类型……
其中,如果定义了default值,则在调用存储过程是可以不指定此参数的值。OUTPUT标识该参数为输出参数。
故本题答案为A。

24.下列关于触发器的说法,错误的是
A、后触发型触发器是先执行引发触发器的操作,再执行触发器自身的操作
B、前触发型触发器是只执行触发器自身的操作,而忽略引发触发器的操作
C、引发触发器执行的操作是增、删、改、查
D、利用触发器可以实现复杂的完整性约束
参考答案为C

解析:触发器是在对表中数据进行UPDATE、INSERT、DELETE操作时自动触发的。

25.设在8D Sewer 208中,要定义一个有两个输入参数a和b、一个输出参数ec的存储过程,a的类型为宁符类型。b、c为整型,a的默认值为好’”,下列定义该存储过程的接口语句正确的是
A、CREATE PROC P1
@a char(10)='好’,@b int,output @c int
B、CREATE PROC P1
@a char(10) default '好’,@b int,output @c int
C、CREATE PROC P1
@a char(10)=’好’,@b int,@c int output
D、CREATE PROC P1
@a char(10) default '好’,@b int,@c int output
参考答案为C

解析:创建存储过程的语法如下:
CREATE PROC 存储过程名
@存储过程参数1 存储过程参数1的类型,@存储过程参数2 存储过程参数2的类型, @存储过程参数3 存储过程参数3的类型……
其中,如果定义了default值,则在调用存储过程时可以不指定此参数的值。OUTPUT标识该参数为输出参数。

26.在SQL Server 2008中,下列关于触发器的说法,正确的是
A、对于UPDATE操作,触发器将生成UPDATED临时表
B、触发器可以提高数据的更改效率
C、触发器可以实现不同表中的列之间的相互取值约束
D、INSERTED临时表只能由INSERT操作引发的触发器生
参考答案为C

解析:如果不同表中的列存在取值约束关系,则只能用触发器实现,不能用CHECK约束实现(CHECK约束只能实现一个表中列之间的取值约束)。
故本题答案为C。

27.设在SQLServer 2008中,要定义一个有一个输入参数a和两个输出参数b、c的存储过程,a、b、c均为整型。下列定义该存储过程的接口正确的是
A、CREATE PROC P1
@a int,@b int output,@c int output
B、CREATE PROC P1
@a int input,@b int output,@c int output
C、CREATE PROC P1
input @a int,output @b int,output @c int
D、CREATE PROC P1
@a int,output @b int,output @c int
参考答案为A

解析:存储过程语法:
CREATE PROC|PROCEDURE procdure_name
[{@paramater data_type}]
[default][OUT|OUTPUT]
][,…n][WITH RECOMPILE]
AS {<sql_statement>[;][…n]}
[;]
<sql_statement>::={[BEGIN] statements [END]}
通过创建存储过程的语法可知,如果是输出参数需要在变量名后标记"output",输入参数不需要标记。
由此可知应选A。

28.下列在T表的DELETES作上建立后触发型触发器的语句开始部分,正确的是
A、CREATE TRIGGER tri_T_Del ON T FOR delete AS…
B、CREATE TRIGGER tri_T_Del FOR delete ON T AS…
C、CREATETRIGGER tri_T_Del ON T BEHIND delete AS…
D、CREATE TRIGGER tri_T_Del BEHIND delete ON T AS… .
参考答案为A

解析: 由创建触发器的语法可知,触发器名称后应紧跟ON,所以BD错误。由于题目要求建立后触发型触发器,所以需要使用for或after短语。故选A。

29.下列关于存储过程的说法,错误的是
A、存储过程的输出参数必须使用OUTPUT关键词标识
B、在定义存储过程的语句中,只可以包含数据查询语句
C、在定义存储过程的语句中,可以包含增、删、改、查语句
D、存储过程可以有多个输入参数和多个输出参数
参考答案为B

解析:存储过程可以用于更改数据和删除数据。

猜你喜欢

转载自blog.csdn.net/Redamancy06/article/details/126963197
今日推荐