计算机三级数据库后台编程技术练习题(一)、不是用于DBAS的微观设计的是、用于DBAS的宏观设计的是、用于表达DBAS系统内部结构的是、@@FETCH_STATUS、FETCH NEXT

1.下列UML图中,不是用于DBAS的微观设计的是
A、对象图
B、状态机图
C、时间图
D、包图
参考答案为D

解析:对象图、状态机图、时间图均是微观设计的表达方法,包图用于宏观设计。

2.下列UML图中,不是用于DBAS的宏观设计的是
A、包图
B、状态机图
C、交互概述图
D、复合结构图
参考答案为B

解析: 宏观设计包括包图、交互概述图、复合结构图。
  故本题答案为B。

3.UML可用于表达DBAS系统的内部结构,下列不是用于表达DBAS系统内部结构的是
A、顺序图
B、通信图
C、用例图
D、类图
参考答案为C

解析:用例图主要用于描述系统需求。

4.设在SQL Server 2008中有如下定义触发器的语句:CREATE TRIGGER tri ON T1 INSTEAD OF INSERT AS … …下列关于该触发器执行机制的说法,正确的是
A、当在T1表上执行INSERT操作时,只执行tri触发器,而不实际执行INSERT操作
B、当在T1表上执行INSERT操作时,先执行tri触发器,然后再实际执行INSERT操作
C、当在T1表上执行INSERT操作时,先执行INSERT操作,然后再执行tri触发器
D、当在T1表上执行INSERT操作时,先执行INSERT操作,如果操作正确,则无需执行tri触发器
参考答案为A

解析:使用FOR或者AFTER选项定义的触发器为后触发型触发器,即只有在引发触发器执行的语句中的操作都已成功执行,并且所有的约束检查也成功完成后,才执行该触发器。使用INSTEAD OF选项定义的触发器为前触发型触发器,在这种模式的触发器中,指定执行触发器而不是执行引发触发器执行的SQL语句,从而替代触发的操作。
因此,可知本题中属于前触发器,即只执行tri触发器,而不实际执行INSERT操作。故答案为A。

5.下列关于sQL Server 2008游标中@@FETCH_STATUS的说法,正确的是
A、用户可以在游标中声明@@FETCH_STATUS变量
B、每个游标都有一个专属于自己的@@FETCH_STATUS变量
C、每当对游标执行一次FETCH语句,系统都会自动对@@FETCH_STATUS赋一次值
D、用户可以对@@FETCH_STATUS变量进行赋值
参考答案为C

解析:在对游标数据进行提取的过程中,可以使用@@FETCH_STATUS全局变量判断数据提取的状态。由于@@FETCH_STATUS对于在一个连接上的所有游标是全局性的,不管是对哪个游标,只要执行一次FETCH语句,系统都会对@@FETCH_STATUS赋一次值,以表明该FETCH语句的执行情况。故答案为C。

6.下列关于SQL server 2008中前触发器的说法,正确的是
A、在一个表上只能定义一个前触发器
B、在前触发器执行之后,再执行引发触发器执行的数据操作语句
C、定义前触发器使用的选项是FOR
D、在一个表上针对同一个数据操作只能定义一个前触发器
参考答案为D

解析:使用INSTEAD OF选项定义的触发器为前触发器。在这种模式的触发器中,指定执行触发器而不是执行引发触发器执行的SQL语句,从而替代触发的操作。在一个表上可以建立多个名称不同、类型各异的触发器,每个触发器可由所有三个操作来引发。对于前触发器,在一个表上针对同一个数据操作只能定义一个前触发器;对于后触发器,可以在同一种操作上建立多个触发器。故答案为D。

7.下列关于SQL Server 2008游标中FETCH语句的说法,正确的是
A、FETCH NEXT表示先将游标当前行指针移动到下一行,并提取所指向的行数据
B、FETCH NEXT表示先提取游标当前行指针所指向的行数据,然后将游标当前行指针下移一行
C、用FETCH语句只能将游标当前行指针向下移动
D、用FETCH语句不能提取指定行数据
参考答案为A

解析: NEXT关键字的作用是返回紧跟在当前行之后的数据行,并且当前行递增为结果行。PRIOR关键字返回紧临当前行前面的数据行,并且当前行递减为结果行。
ABSOLUTE n和RELATIVE n关键字用于指定特定行。FIRST关键字返回游标中的第一行并将其作为当前行。LAST关键字返回游标中的最后一行并将其作为当前行。故答案为A。

8.下列关于存储过程的说法,错误的是
A、存储过程是调用执行的、存储在服务器端的代码段
B、利用存储过程可以提高数据操作性能
C、存储过程可以接受多个输入参数,但只能有一个输出参数
D、利用存储过程可以提升数据的安全性
参考答案为C

解析:存储过程可以接受多个输入参数,也可以接受多个输出参数。故答案为C。

9.设在SQLServer 2008中有如下定义存储过程的语句:
CREATE PROC p1
@x int,@y int = 10, @z int output
…. …
下列关于调用该存储过程的语句,错误的是
A、DECLARE @i int output
EXEC p1 10, @i
B、DECLARE@i int
EXEC p1 10,100, @i output
C、DECLARE @i int
EXEC p1 10, default, @i output
D、DECLARE @i int
EXEC p1 @x = 10, @z= @i output
参考答案为A

解析:在调用存储过程时,只需要声明参数的类型,不能指明参数为输出参数。只有再执行时才能指明参数为输出参数。故答案为A。

10.下列关于存储过程的说法,正确的是
A、存储过程不支持输入参数有默认值
B、一个存储过程只能有一个输出参数
C、存储过程的返回结果可以是一个集合
D、删除存储过程的语句是:DELETE PROCEDURE存储过程名
参考答案为C

解析:在创建存储过程中可以声明一个或多个参数。除非定义了参数的默认值或者将参数设置为等于另一个参数,否则用户在调用存储过程时必须为每个声明的参数提供值。一个存储过程最多可以有2100个参数。一个存储过程可以有多个输出参数。
删除存储过程的语句为:
DROP { PROC | PROCEDURE } { [schema_name. ] procedure}[,…n]
故答案为C。

11.设在SQL Server 2008中有如下定义存储过程的语句;
CREATE PROC p1
@x char(10),@y int,@z int
下列关于调用该存储过程的语句,正确的是
A、EXEC pl ‘abc’, 100
B、EXEC pl ‘abc’, 200,100
C、EXEC pl ‘abc’, default,100
D、EXEC p1 @x=‘abc’, @z=100
参考答案为B

解析:由定义存储过程的语句可知,声明了3个参数,分别为x、y和z。在调用存储过程时,需要为每个声明的参数提供值。
选项AD中缺少一个参数值,所以错误。
如果存储过程没有为参数指定默认值,而在执行存储过程时又使用了DEFAULT关键字,则会出现错误,所以选项C错误。
故答案为B。

12.下列关于存储过程的说法,错误的是
A、存储过程的返回结果可以是一个集合
B、利用存储过程可以进行模块化程序设计
C、存储过程可以接受多个输入参数,并可返回多个输出结果
D、存储过程是指存储在客户端的可调用执行的代码段
参考答案为D

解析: 存储过程,实际上是存储在数据库中供所有用户程序调用的子程序。
故答案为D。

13.设在SQL Server 2008中有如下定义存储过程的语句:
CREATE PROC p1
@x char(10) = ‘abc’, @y int = 10,@z int = 100
下列关于调用该存储过程的语句,错误的是
A、EXEC pl ‘xxx’, @z = 10
B、EXEC p1
C、EXEC pl ‘xxx’
D、EXEC pl ‘xxx’, 20
参考答案为A

解析:执行有多个输入参数的存储过程时,参数的传递方式有两种:
①按参数位置传递值
按参数位置传递值指执行存储过程的EXEC语句中的实参的排列顺序必须与定义存储过程时定义的参数的顺序一致。
②按参数名传递值
按参数名传递值指的是执行存储过程的EXEC语句中要指明定义存储过程时指定的参数的名字以及此参数的值,而不关心参数的定义顺序。
选项A中两种传递方式矛盾,故答案为A。

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

解析:本题考查的知识点是:存储过程
由存储过程的创建语法可知,可以有多个输入和输出参数,参数类型随意。故答案为D。

15.设在SQL Server中有如下定义触发器的语句:
CREATE TRIGGER tri_1
ON T1 FOR INSERT
AS……
下列关于该触发器作用的说法,正确的是
A、在T1表上定义了一个用于插入数据的后触发型触发器
B、在T1表上定义了一个用于插入数据的前触发型触发器
C、在T1表上定义了一个由插入操作引发的后触发型触发器
D、在T1表上定义了一个由插入操作引发的前触发型触发器
参考答案为C

解析:本题考查的知识点是:触发器
for或after指的是后触发器,instead of是前触发器。insert指的是引发触发器执行的操作是插入操作,所以语句的功能是:在T1表上定义了一个由插入操作引发的后触发型触发器,故答案为C。

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Redamancy_06

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值