SQL Server数据库程序设计认证试题.docx

上传人:b****4 文档编号:3537798 上传时间:2022-11-23 格式:DOCX 页数:91 大小:656.65KB
下载 相关 举报
SQL Server数据库程序设计认证试题.docx_第1页
第1页 / 共91页
SQL Server数据库程序设计认证试题.docx_第2页
第2页 / 共91页
SQL Server数据库程序设计认证试题.docx_第3页
第3页 / 共91页
SQL Server数据库程序设计认证试题.docx_第4页
第4页 / 共91页
SQL Server数据库程序设计认证试题.docx_第5页
第5页 / 共91页
点击查看更多>>
下载资源
资源描述

SQL Server数据库程序设计认证试题.docx

《SQL Server数据库程序设计认证试题.docx》由会员分享,可在线阅读,更多相关《SQL Server数据库程序设计认证试题.docx(91页珍藏版)》请在冰豆网上搜索。

SQL Server数据库程序设计认证试题.docx

SQLServer数据库程序设计认证试题

SQLServer数据库程序设计认证试题

1.你是一家公司的数据库开发员,你正在创建一个数据库用来存储15所中学运动会的统计信息,这些信息将被50个公司用来在他们网站上发布运动会信息。

每个公司的Web站点用不同的格式排列和显示统计表。

你需要把数据打包传送给这些公司,你该怎么做?

(SQL对XML支持)

A.用包括FORXML子句的SELECT语句来提取数据

B.使用sp_makewebtask系统存储过程来产生由SELECT语句返回的数据的HTML文本

C.创建数据传输服务数据包来导出数据库的数据,并把这些数据放到tab分隔的文本文件中

D.创建一个应用程序,此应用程序用SQL_DMO提取数据库的数据并把这些数据转换为标准电子数据交换(EDI)文件

答案:

A.

XML可扩展标记语言,用于在web上显示数据的语言,SELECT语句的forxml子句可以使查询返回XML格式,而不是标准的行集结果;Sp_makewebtask创建一项生成HTML文档的任务,而XML比HTML更复杂;tab分隔文件常常在一些电子制表软件中被使用,如Excel;SQL_DMO是SQL分布式管理对象的缩写,允许用支持自动化或COM的语言编写应用程序,以管理SQLServer安装的所有部分。

2.你是一邮件订购公司的数据库开发者,该公司有两台名为CORP1和CORP2的SQLServer2000的计算机。

CORP1是台在线处理事务的服务器。

CORP2存放销售的历史数据。

CORP2已经添加了一个连接服务到CORP1上。

销售部经理请你创建一个是谁购买软盘的用户清单。

这清单每个月生成一次,软盘在数据库中用ID21来表示。

你必须从一张名为SalesHistory的表中检索数据。

该表放在本地的CORP2Archive数据库中。

你需要在CORP1上执行这个请求。

你该选择哪个选项?

(远程服务器)

A.EXECsp_addlinkedserver‘CORP2',‘SQLServer’

GO

SELECTCustomerIDFROMCORP2.Archive.dbo.SalesHistory

WHERECategoryID=21

B.SELECTCustomerIDFROMOPENROWSET(‘SQLOLEDB’,‘CORP2’;‘p*word’,‘SELECT

CustomerIDFROMArchive.dbo.SalesHistoryWHERECategoryID=21’)

C.SELECTCustomerIDFROMCORP2.Archive.dbo.SalesHistory

WHERECategoryID=21

D.EXECsp_addserver‘CORP2’

GO

SELECTCustomerIDFROMCORP2.Archive.dbo.SalesHistory

WHERECategoryID=21

答案:

C.

SELECTCustomerIDFROMSalesHistoryWHERECategoryID=21,由于表SalesHistory是在远程的CORP2服务器上,并且也已经建立了连接,所以可以直接使用分布式查询。

sp_linkedserver是建立与服务器的连接;OPENROWSET是一种使用OLEDB连接并访问远程数据的一次性的、特殊的方法,无需设置链接服务器;sp_addserver定义本地或远程服务器的名称

3.你是一名TreyResearch的数据库开发者,你创建两个事务来帮助将雇员的数据信息写入公司的数据库中。

一个事物将雇员的姓名和地址插入数据库中,这个事务很重要,另外一个事务将雇员的人数统计插入到数据库中,这个事务不那么重要。

在数据库使用的高峰期,在服务器有时遇到错误的期间管理员会通知。

每次发生时,数据库服务器会随机地终止其中一个事务。

你必须确定当服务器终止其中一个事务时,它不会终止比较重要的那个事务。

你应该做什么?

(事务处理)

A.为插入雇员姓名和地址信息的那个事务设置DEADLOCK_PRIORITYtoLOW选项

B.为插入雇员人数信息的那个事务设置DEADLOCK_PRIORITYtoLOW选项

C.为插入雇员姓名和地址信息的那个事务添加一个检查1205服务器错误的条件代码。

如果这个错误被遇到,重新启动该事务。

D.在事务中添加一个ROWLOCK优化提示给SQL数据操作语句。

E.为插入雇员姓名和地址信息的那个事务设置隔离级别给SERIALIZABLE.

答案:

B.

Setdeadlock_prioritytolow可以指定当前事务为首选死锁牺牲品;

错误号1205是事务成为死锁牺牲事务被中止后返回的信息,为插入雇员姓名和地址信息的那个事务添加条件代码,比较没有效率

4.你是公司的SQLServer2000在线事务处理数据库的开发者.很多表中有一千甚至更多行。

所有的表都有一聚集索引。

大量地访问表至少要有一个非聚集索引。

在数据库服务器上数据文件将包含有2个RAID阵列。

你想要排列这些表和索引以确保最佳的输入/输出性能。

你在每个RAID阵列上创建一个文件组,你接下来应该做什么?

(文件组管理)

A.把经常连接在一起的表放在同一个文件组中。

把大量访问的表和属于这些表的所有索引放在不同的文件组中。

B.把经常连接在一起的表放在同一个文件组中。

把大量访问的表和属于这些表的非聚集索引放在同一个文件组中。

C.把经常连接在一起的表放在不同的文件组中。

把大量访问的表和属于这些表的非聚集索引放在不同的文件组中。

D.把经常连接在一起的表放在不同的文件组中。

把大量访问的表和属于这些表的非聚集索引放在同一个文件组中。

答案:

C

为了提高查询效率,将经常查询的表放不同的文件组中,而且将非聚集索引和它的表也放入不同的文件组中。

5.你是公司SQLServer2000数据库的开发者。

你更新了数据库里几个存储过程来创建新的月终销售部门的报表。

此存储过程包括综合查询从三个或者更多的数据表中检索数据。

所有数据库中的表至少有一个索引。

用户反映新的月终报表比前一个版本的报表运

行速度慢很多。

你想改善报表的性能。

你该怎么做?

A.创建一个脚本,包括每个存储过程中的数据定义语言(DataDefinitionLanguage),使用这个脚本作为索引优化向导(IndexTuningWizard)的工作量文件

B.在SQL部署跟踪器中捕获每个存储过程的执行,使用跟踪文件作为索引优化向导(IndexTuningWizard)的工作量文件

C.更新存储过程使用的数据表统计索引

D.在SQL查询分析器中执行每个存储过程,并使用ShowExecutionPlan选项

E.在SQL查询分析器中执行每个存储过程,并使用ShowServerTrace选项

正确答案:

E

"显示服务器跟踪"命令提供了对信息的访问,此信息用于确定查询对服务器方的影响。

如果"显示服务器跟踪"命令在执行查询时启用,则该命令显示跟踪窗格,此窗格提供有关事件类、子类、整型数据、文本数据、数据库ID、持续时间、启动时间、读、写以及CPU使用的信息。

"显示服务器跟踪"可以用来帮助调整查询语句、存储过程和脚本,显示在查询分析器中。

索引优化向导内容参阅联机丛书。

6.你是一家进口商的数据库管理员,你正在创建一个存储订单信息的数据库。

订单将会在一个client/server应用系统中录入,每次一个新的订单录入时,必须分配一个唯一的订单编号,订单编号必须以升序分配。

每天平均有10000个订单被录入。

你创建了一个新的名为Orders的表,并在这个表里添加了一个OrderNumber列。

接下来你该做什么?

(表的属性)

A.设置这个列的数据类型为uniqueidentifier

B.设置这个列的数据类型为int,并为这个列设置IDENTITY属性

C.设置这个列的数据类型为int,创建一个用户定义的方法来选择表中最大的订单编号

D.设置这个列的数据类型为int,创建一个NextKey表,并被这个表添加一个NextOrder列,设置NextOrder列的数据类型为int,创建一个存储过程来检索并更新NextKey中的值

答案:

B.

7.你是一个技术培训中心数据库开发者。

通常地,用书面管理雇员的学历、教师、课程和教室安排。

这个培训中心希望通过开发一个数据库录入信息来实现无纸化记录。

你为这个数据库设计表,设计如图

你想缩短查询的响应时间和将数据冗余最小化。

你应该做什么?

(数据库设计)

A.创建一个名为Instructors的新表。

包含InstructorID、InstructorName、OfficePhone等字段,为添加一个Courses表添加一个名为InstructorID的字段。

B.将Classroom中的所有字段复制到Courses,并删除Classroom表。

C.移除Courses表的主键约束用一个基于CourseID和CourseTitle的主键约束来代替。

D.移除ClassroomID字段,并在ClassroomNumber和ClassTime字段上以主键约束做基础。

答案:

A.

8.你设计了一个包含客户订单的数据库。

客户每次下订单时都将订购多种的产品。

你再观察如图所示的数据库设计:

你想缩短查询的响应时间和将数据冗余最小化。

你应该怎么做?

(数据库设计)

A.创建一个新的名为OrderDetail的订货表,为该表添加OrderID、ProductID、Quantity字段。

B.在Orders表的OrderID、ProductID字段上创建一个混合的主键约束

C.从Orders表中除去ProductID、Quantity这两个字段.

D.在Orders表的OrderID上创建一个唯一约束.

E.将UnitPrice这个字段从Products表移动到Orders表.

答案:

A,C.

9.您是一出版社公司的数据库开发者。

你创建以下存储过程来汇报某本书从年初至今的销售情况

CREATEPROCEDUREget_sales_for_title

@titlevarchar(80),@ytd_salesintOUTPUT

AS

SELECT@ytd_sales=ytd_sales

FROMtitles

WHEREtitle=@title

IF@@ROWCOUNT=0

RETURN(-1)

ELSE

RETURN(0)

您创建一个脚本来执行这个存储过程。

如果该存储过程成功执行,它应报道书的销售情况。

如果失败,则将返回如下信息:

“NoSalesFound”

您该怎样创建该脚本?

(存储过程)

A.DECLARE@retvalint

DECLARE@ytdint

EXECget_sales_for_title‘NetEtiquette’,@ytd

IF@retval<0

PRINT‘Nosalesfound’

ELSE

PRINT‘Yeartodatesales:

’+STR(@ytd)

GO

B.DECLARE@retvalint

DECLARE@ytdint

EXECget_sales_for_title‘NetEtiquette’,@ytdOUTPUT

IF@retval<0

PRINT‘Nosalesfound’

ELSE

PRINT‘Yeartodatesales:

’+STR(@ytd)

GO

C.DECLARE@retvalint

DECLARE@ytdint

EXECget_sales_for_title‘NetEtiquette’,@retvalOUTPUT

IF@retval<0

PRINT‘Nosalesfound’

ELSE

PRINT‘Yeartodatesales:

’+STR(@ytd)

GO

D.DECLARE@retvalint

DECLARE@ytdint

EXEC@retval=get_sales_for_title‘NetEtiquette’,@ytdOUTPUT

IF@retval<0

PRINT‘Nosalesfound’

ELSE

PRINT‘Yeartodatesales:

’+STR(@ytd)

GO

答案:

D

关键点在于要用变量来接受存储过程执行的结果,通过对结果的判断来确定打印出的信息

10.您是一集装箱制造公司的数据库开发者。

您的公司生产的集装箱是一些不同型号的。

存储集装箱信息的表如下所示有Size、Container和Shape表。

数据存储在表中的示例如图所示

在表中数据存储的实例如图中资料所示,

集装箱的大小定期地改变。

数据库用户经常需要一集装箱的体积。

集装箱的体积是根据shape和size表中的信息计算的。

您要隐藏计算的详细过程,以使体积可以很容易的从对containe表的SELECT语句中得出,你应该做什么?

(存储过程/函数/触发器的不同用法)

A.创建一个以ContainerID为输入参数并且能够返回集装箱的体积的用户自定义函数。

B.创建一个以ContainerID为输入参数并且能够返回集装箱的体积的存储过程.

C.为Container表添加一个名为volume的字段。

创建一个触发器来计算和存储体积当有一个新的集装箱插入表中的时候.

D.给Container表添加一个计算列来计算集装箱的体积。

答案:

A.

题意关键在于要在查询语句中实现返回体积的结果,只有函数能在查询语句中使用。

11.你是一医院数据库的开发者,医院一共有26层,每一层有4个存放设备的房间。

你设计一个可处理设备的控制数据库。

某些可处理设备须每次都存储。

当使用设备时,就扫描条形码用来减少数据库里的物品的数量。

供应者应在可用设备数量少于设备房间设置的最小值时被呼叫。

你该怎么做?

A.创建一个用来更新inventory表的存储过程。

如果结果小于重新储存量,使用xp_logevent存储过程来呼叫。

B.在inventory表上创建一个INSTEADOFUPDATE触发器。

如果inserted表中的数量小于重新储存量,使用SQLAgentMail来发送e-mail信息给管理者

C.在inventory表上创建一个FORUPDATE触发器.如果inserted表中的数量小于重新储存量,使用xp_sendmail系统存储过程来呼叫。

D.设置SQLserver作业每隔4小时运行一次,配置该作业使用the@notify_level_page=2argument.配置该作业让它测试列的大小它将触发供应者被呼叫。

答案:

C.

12.您是一数据库的开发者,该数据库用来报告时间。

通常平均每次有5个用户同时访问该数据库,且查询响应时间小于1秒钟。

然而,在星期五下午和星期一早上,当大多数雇员输入他们的时间,该数据库使用率增加到平均每次50个用户。

在这段时间内,查询响应时间增加到平均15到20秒。

您要找到响应速度减慢的原因并解决问题。

你该怎么做?

(事务和锁的应用)

A.用sp_lock和sp_who系统存储过程找出被锁定的资源和占用锁的进程。

用这些信息来识别和重设引起锁的事务。

B.用系统表sysprocesses和sysobjects找出死锁的资源并确定访问该资源的进程。

C.用系统表sysprocesses找出哪个资源正在被访问。

在所有被访问的表的主键上添加聚集索引。

D.用sp_monitor系统存储过程来确认增加的查询时间影响了哪个进程。

为该进程设置一个限制性较小的事务隔离级别。

答案:

A.

影响查询响应速度的原因在于进程所需的资源被锁,sp_lock可以索取锁的信息,sp_who可以列出当前进程信息

13.你是一家保险公司的数据库开发人员,公司有一个多层应用系统用来录入关于公司保险单和保险单所有者的数据。

保险单所有者信息存储在Owners表中,用来创建这个表的脚本如下所示:

CREATETABLEOwners

OwnerIDintIDENTITY(1,1)NOTNULL,

FirstNamechar(20)NULL,

LastNamechar(30)NULL,

BirthDatedateNULL,

CONSTRAINTPK_OwnersPRIMARYKEY(OwnerID)

当保险单所有者的信息被录入时,如果所有者的出生日期没有被包括进来;数据库需要

产生一个自定义的错误信息在数据录入系统中显示。

你需要为数据库设计一个方法能够

确认出生日期被提供,并在没有提供出生日期时产生一个错误,你该怎么做?

A.在BirthDate列添加一个CHECK约束

B.创建一个规则,并把这个规则和BirthDate列绑定

C.修改Owners表,使BirthDate列不允许为空

D.为Owners表创建一个触发器,使BirthDate列有效

答案:

D.

CHECK约束/规则都无法产生错误的信息项目,只有触发器可以。

14.你是一家大型brewery的数据库开发人员。

每一家工厂和设备的信息存储在一个名为Equipment的数据库中.这工厂的信息存放在一张名为Location的表中,设备的信息存放在一张名为Parts的表中。

用来创建这些表所使用的脚本如下所示:

CREATETABLELocation

LocationIDintNOTNULL,

LocationNamechar(30)NOTNULLUNIQUE,

CONSTRAINTPK_LocationPRIMARYKEY(LocationID)

CREATETABLEParts

PartIDintNOTNULL,

LocationIDintNOTNULL,

PartNamechar(30)NOTNULL,

CONSTRAINTPK_PartsPRIMARYKEY(PartID),

CONSTRAINTFK_PartsLocationFOREIGNKEY(LocationID)

REFERENCESLocation(LocationID)

Thebrewery可以用来关闭一些现有的工厂和打开一些新的工厂。

当一家工厂被关闭时,有关工厂和所有设备的信息将从数据库中删除。

你创建一个存储过程来完成这个操作。

名为sp_DeleteLocation存储过程如下所示:

CREATEPROCEDUREsp_DeleteLocation@LocNamechar(30)

ASBEGIN

DECLARE@PartIDint

DECLAREcrs_PartsCURSORFOR

SELECTp.PartID

FROMPartsASpINNERJOINLocationAS1

ONp.LocationID=l.LocationID

WHEREl.LocationName=@LocName

OPENcrs_Parts

FETCHNEXTFROMcrs_PartsINTO@PartID

WHILE(@@FETCH_STATUS<>-1)

BEGIN

DELETEPartsWHERECURRENTOFcrs_Parts

FETCHNEXTFROMcrs_PartsINTO@PartID

END

CLOSEcrs_Parts

DEALLOCATEcrs_Parts

DELETELocationWHERELocationName=@LocName

END

这个存储过程将要花费比想像中还要长的时间来执行。

你需要减少这个存储过程的执行时间,你该怎么做?

(游标的使用)

A.在定义过程中添加WITHRECOMPILE选项.

B.用单一的DELETE语句取代游标操作

C.在过程的开头添加一个BEGINTRAN语句并在过程的结尾添加COMMITTRAN语句

D.为这个过程设置事务处理隔离级别READUNCOMMITTED

E.为Parts表的PartID字段添加一个非聚集索引.

答案:

B.

游标操作是在使用查询语句多个结果集中的一个值的时候起作用,它将耗费大量的时间,本题完全可以用两句DELETE语句就将Location表和part表删除。

无需使用游标

15.你是一家保险公司的数据库开发者,公司的保险单信息存储在一个SQLServer2000

数据库中,你使用如下所示的脚本为数据库创建了一个名为Policy的表:

CREATETABLEPolicy

(PolicyNumberintNOTNULLDEFAULT(0),

InsuredLastNamechar(30)NOTNULL,

InsuredFirstNamechar(20)NOTNULL,

InsuredBirthDatedatetimeNOTNULL,

PolicyDatedatetimeNOTNULL,

FaceAmountmoneyNOTNULL,

CONSTRAINTPK_PolicyPRIMARYKEY(PolicyNumber))

每次公司卖出一份新的保险单时,policy表就要增加一条记录,并赋予其一个新的保单号,你将怎么做?

A.创建一个INSTEADOFINSERT触发器来产生一个新的保单号,并把这保单号插入到表中

B.创建一个INSTEADOFUPDATE触发器来产生一个新的保单号,并把这保单号插入到表中

C.创建一个AFTERUPDATE触发器来产生一个新的保单号,并把这保单号插入到表中

D.用AFTERINSERT触发器来代替DEFAULT约束,产生一个新的保单号,并把这保单号插入到表中

答案:

A

16.你是一家通讯公司的数据库开发队的一个成员。

在队上的另外一个开发者,Marc,在一个名为Corporate的数据库中创建了一张名为Customers的表。

因为表包含机密的信息,他已经授权允许查询该表的只有队里的其他成员。

你正在开发一个应用程序用来允许销售部门的职员查看Customers表的一些信息。

这些职员是销售数据库角色的所有成员。

为了支持这一个应用程序,你在Customers表上创建一个被命名的vwCustomers的视图。

在创建视图之后,你授权具有销售角色的成员允许查询。

当销售角色的成员尝试从视图中取回数据的时候,他们接收以下错误信息:

SELECTpermissiondeniedonobject‘Customers’,database‘Corporate’,owner‘Marc’.

你必须确定具有销售角色的成员只能使用vwCustomers视图来访问Customers表的数据。

你应该做什么?

(用户角色管理)

A.添加一个销售角色到固定的系统管理员服务器角色中。

B.将vw

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1