sql 70-229 考试样题(1)

1.你是一数据公司的数据库开发者,你创建了一个用来存储15个不同高校运动会统计表的数据库。这些信息将被用在50家公司的网页设置上。每个公司的WEB设置以不同的格式来安排和显示这些统计表。你需要组装这些数据传送到这些公司去,你应该做什么?
A.用包含FOR XML子句的SELECT语句来提取数据。
B.使用sp_makewebtask系统存储过程,用select 语句从数据的返回中产生HTML。
C.创建数据转换服务包从数据库中输出数据并且将数据放在带有分隔标记的文本文件中。
D.使用SQL_DMO来创建一个应用程序把数据从数据库中取出并转换它.
答案: A.

2.你是一邮件订购公司的数据库开发者,该公司有两台名为CORP1和CORP2 的SQLServer2000的计算机。CORP1是台在线处理事务的服务器。CORP2存放销售的历史数据。CORP2已经添加了一个连接服务器到CORP1上。销售部经理请你创建一个是谁购买软盘的用户清单。这清单每个月生成一次,软盘在数据库中用ID21来表示。你必须从一张名为SalesHistory的表中检索数据。该表放在本地的CORP2档案数据库中。你需要在CORP1上执行这个请求。你该选择哪个选项?
A.     EXEC sp_addlinkedserver ‘CORP2', ‘SQL Server’
GO
SELECT CustomerID FROM CORP2.Archive.dbo.SalesHistory
WHERE CategoryID = 21
B.     SELECT CustomerID FROM OPENROWSET (‘SQLOLEDB’, ‘CORP2’; ‘p*word’, ‘SELECT
CustomerID FROM Archive.dbo.SalesHistory WHERE CategoryID = 21’)
C.     SELECT CustomerID FROM CORP2.Archive.dbo.SalesHistory
WHERE CategoryID = 21
D.     EXEC sp_addserver ‘CORP2’
GO
SELECT CustomerID FROM CORP2.Archive.dbo.SalesHistory
WHERE CategoryID = 21
答案: C.

3.你是一名Trey Research的数据库开发者,你创建两个事务来帮助将雇员的数据信息写入公司的数据库中。一个事物将雇员的姓名和地址插入数据库中,这个事务很重要,另外一个事务将雇员的人数统计插入到数据库中。这个事务不那么重要。在数据库使用的高峰期,在服务器有时遇到错误的期间管理员会通知。每次发生时,数据库服务器会随机地终止其中一个事务。你必须确定当服务器终止其中一个事务时,它不会终止比较重要的那个事务。你应该做什么?
A.为插入雇员姓名和地址信息的那个事务设置 DEADLOCK_PRIORITY to LOW 选项
B.为插入雇员人数信息的那个事务设置 DEADLOCK_PRIORITY to LOW 选项
C.为插入雇员姓名和地址信息的那个事务添加一个检查1205服务器错误的条件代码。如果这个错误被遇到,重新启动该事务。
D.在事务中添加一个ROWLOCK优化提示给SQL数据操作语句。
E.为插入雇员姓名和地址信息的那个事务设置隔离级别给 SERIALIZABLE.
答案: B.

4.你是公司的SQL Server 2000在线事务处理数据库的开发者.很多表中有一千甚至更多行。所有的表都有一聚集索引。大量地访问表至少要有一个非聚集索引。在数据库服务器上数据文件将包含有2个RAID阵列。你想要排列这些表和索引以确保最佳的输入/输出性能。你在每个RAID阵列上创建一个文件组,你接下来应该做什么?
A.把经常连接在一起的表放在同一个文件组中。把大量访问的表和属于这些表的所有索引放在不同的文件组中。
B.把经常连接在一起的表放在同一个文件组中。把大量访问的表和属于这些表的非聚集索引放在同一个文件组中。
C.把经常连接在一起的表放在不同的文件组中。把大量访问的表和属于这些表的非聚集索引放在不同的文件组中。
D.把经常连接在一起的表放在不同的文件组中。把大量访问的表和属于这些表的非聚集索引放在同一个文件组中。
答案: C

5.你是你公司SQL Server 2000 数据库的开发者。你在数据库中更新一些为销售部门创建新的月底报表的存储过程。这存储过程包括从三个或更多的表中检索数据的复杂请求。在数据库中所有的表至少有一个索引。用户报告说有一个新的月底报表的运行比以前版本的报表的运行来的慢。你想要提高这些报表的性能,你应该做什么?
A.为每个存储过程创建一个包含数据定义语言的脚本。为索引调整向导使用这个脚本作为工作负荷记录文件
B.在SQL跟踪事件探查器捕获每一个存储的执行过程。为索引调整向导使用跟踪文件作为工作 负荷记录文件
C.在使用存储过程的表中更新统计表
D.在查询分析器中执行每一个存储过程,并使用Show Execution Plan选项
E.在查询分析器中执行每一个存储过程,并使用Show Server Trace选项
答案: E

6.你是一个wide world importers公司的数据库开发人员,你创建了用来存储订单的数据库。订单将被输入客户/服务器应用程序中。每次有一个新订单被输入,并被赋予一个唯一的编号,按升序排列。每天平均有10000个订单被输入。你创建一个名为Orders的新表并在其中添加一个OrderNumber字段。接下来你应该做什么?
A. 为该字段设置全局唯一标识符的数据类型。
B. 为该字段设置int数据类型,并为该字段设置一致性的属性。
C. 为该字段设置int数据类型。在表中创建一个用户自定义函数用于查看订单编号的最大值。
D. 为该字段设置int数据类型。创建一个名为NextKey的表,并在其中添加NextOrder字段。将该字段的数据类型设置为int。在NextKey表中创建一个存储过程用于检索更新value held。
答案: 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.您是一出版社公司的数据库开发者。你创建以下存储过程来为特殊的书名报道每年每日的销售情况
CREATE PROCEDURE get_sales_for_title
%title varchar(80), @ytd_sales int OUTPUT
AS
SELECT @ytd_sales = ytd_sales
FROM titles
WHERE title = @title
IF @@ROWCOUNT = 0
RETURN(-1)
ELSE
RETURN(0)
您创建一个脚本来执行这个存储过程。如果该存储过程成功执行,它应报道每年每日书的销售情况。如果失败,则将返回如下信息:
“No Sales Found”
您该怎样创建该脚本?
A.     DECLARE @retval int
DECLARE @ytd int
EXEC get_sales_for_title ‘Net Etiquette’, @ytd
IF @retval < 0
PRINT ‘No sales found’
ELSE
PRINT ‘Year to date sales: ’ + STR (@ytd)
GO
B.     DECLARE @retval int
DECLARE @ytd int
EXEC get_sales_for_title ‘Net Etiquette’, @ytd OUTPUT
IF @retval < 0
PRINT ‘No sales found’
ELSE
PRINT ‘Year to date sales: ’ + STR (@ytd)
GO
C.     DECLARE @retval int
DECLARE @ytd int
EXEC get_sales_for_title ‘Net Etiquette’,@retval OUTPUT
IF @retval < 0
PRINT ‘No sales found’
ELSE
PRINT ‘Year to date sales: ’ + STR (@ytd)
GO
D.     DECLARE @retval int
DECLARE @ytd int
EXEC @retval = get_sales_for_title ‘Net Etiquette’, @ytd OUTPUT
IF @retval < 0
PRINT ‘No sales found’
ELSE
PRINT ‘Year to date sales: ’ + STR (@ytd)
GO
答案:D

10.您是一集装箱制造公司的数据库开发者。您的公司生产的集装箱是一些不同型号的。存储集装箱信息的表如下所示有
Size、Container和Shape表。
数据存储在表中的示例如图所示

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

集装箱的大小定期地改变。数据库用户经常需要一集装箱的体积。集装箱的体积是根据shape和size表中的信息计算的。
您要隐藏计算的详细结果,以便the volume can be easily accessed in a SELECT query with the rest of the container information。
你应该做什么?
A.创建一个以ContainerID 为根据并且能够清空集装箱的体积的用户自定义函数。
B.创建一个以ContainerID 为根据并且能够清空集装箱的体积的存储过程.
C.为Container 表添加一个名为volume 的字段。创建一个触发器来计算和存储体积当有一个新的集装箱插入表中的时候.
D.给Container表添加一个计算列来计算集装箱的体积。
答案: A.

11.你是一医院数据库的开发者.医院一共有26层,每一层提供了4个房间。你设计一个控制物品清单的数据库。某些使用方便的列须每次都存储。当使用某一个列时,键用来减少计算数据库里的物品清单。供应管理者应在可用空间少于列的最小值时翻页。你该怎么做?
A.创建一个用来更新inventory表的存储过程。如果结果小于重新储存量,使用xp_logevent存储过程来翻页。
B.在inventory表上创建一个INSTEAD OF UPDATE触发器。如果inserted表中的数量小于重新储存量,使用SQLAgentMail来发送e-mail信息给翻页者
C.在inventory表上创建一个FOR UPDATE触发器. 如果inserted表中的数量小于重新储存量,使用xp_sendmail系统存储过程来翻页。
D.设置SQL server作业每隔4小时运行一次,
配置该作业使用the @notify_level_page = 2 argument.
配置该作业让它测试列的大小它将触发供应者翻页。
答案: C.

12.您是一数据库的开发者,该数据库用来报告时间。通常平均每次有5个用户同时访问该数据库,,且查询响应时间小于1秒钟。然而,在星期五下午和星期一早上,当大多数雇员输入他们的时间 ,该数据库使用率增加到平均每次50个用户。在这段时间内,查询响应时间增加到平均15到20秒。
您要减慢响应速度的原因并解决问题。你该怎么做?
A.用sp_lock和sp_who系统存储过程找出锁的资源和占用锁的进程。用这些信息来识别和   重设引起锁的事务。
B.用系统表sysprocesses和sysobjects找出死锁的资源并确定访问该资源的进程。
C.用系统表sysprocesses 找出哪个资源正在被访问。在所有被访问的表的主键上添加聚集索引。
D.用sp_monitor系统存储过程来确认增加的查询时间影响了哪个进程。为该进程设置一个限制性较小的事务隔离级别。
答案: A.

13.你是一保险公司的数据库开发者。该保险公司有一应用程序用来输入关于它的政策和其所有者的数据。该政策所有者信息存储在Owners表中。建该表的脚本如下所示:
CREATE TABLE Owners
(
OwnerID int IDENTITY (1, 1) NOT NULL,
FirstName char(20) NULL,
LastName char(30) NULL,
BirthDate date NULL,
CONSTRAINT PK_Owners PRIMARY KEY (Owner ID)
)
当输入所有者的信息,所有者的出生日期不存在,该数据库需 产生一定的错误信息项目,该信息可通过数据登记程序来显示。您需要为该数据库设计一个方法来确认出生日期已提供,如果没有则产生错误信息。你该怎么做?
A.在BirthdayDate列中添加CHECK约束。
B.创建一个规则,并将其绑定到BirthdayDate列中。
C.修改Owners表,不允许BirthDate列为空。
D.在Owners中创建一个触发器来确认BirthDate列。
答案: D.

14.你是一家大型brewery的数据库开发人员 。每一家工厂和设备的信息存储在一个名为Equipment的数据库中. 这工厂的信息存放在一张名为Location的表中,设备的信息存放在一张名为Parts的表中。用来创建这些表所使用的脚本如下所示:
CREATE TABLE Location
(
LocationID int NOT NULL,
LocationName char (30) NOT NULL UNIQUE,
CONSTRAINT PK_Location PRIMARY KEY (LocationID)
)
CREATE TABLE Parts
(
PartID int NOT NULL,
LocationID int NOT NULL,
PartName char (30) NOT NULL,
CONSTRAINT PK_Parts PRIMARY KEY (PartID),
CONSTRAINT FK_PartsLocation FOREIGN KEY (Location ID)
REFERENCES Location (LocationID)
)
The brewery用来关闭一些现有的工厂和打开一些新的工厂。当一家工厂被关闭时,有关工厂和所有设备的信息将从数据库中删除。你创建一个存储过程来完成这个操作。名为sp_DeleteLocation 存储过程如下所示:
CREATE PROCEDURE sp_DeleteLocation @LocName char(30) AS
BEGIN
DECLARE @PartID int
DECLARE crs_Parts CURSOR FOR
SELECT p.PartID
FROM Parts AS p INNER JOIN Location AS 1
ON p.LocationID = @LocName
WHERE l.LocationName = @LocName
OPEN crs_Parts
FETCH NEXT FROM crs_Parts INTO @PartID
WHILE (@@FETCH_STATUS <> -1)
BEGIN
DELETE Parts WHERE CURRENT OF crs_Parts
FETCH NEXT FROM crs_Parts INTO @PartID
END
CLOSE crs_Parts
DEALLOCATE crs_Parts
DELETE Location WHERE LocationName = @LocName
END
这个存储过程将要花费比想像中还要长的时间来执行。 你需要减少这个存储过程的执行时间,你该怎么做?
A. 在定义过程中 添加 WITH RECOMPILE 选项 .
B. 用单一的DELETE 语句取代光标操作
C. 在过程的开头添加一个 BEGIN TRAN 语句并在过程的结尾添加 COMMIT TRAN 语句
D. 为这个过程设置事务处理隔离级别 READ UNCOMMITTED
E. 为 Parts 表的 PartID 字段添加一个非聚集索引.
答案: B.

15.你是一家保险公司的数据库开发人员。关于公司保险单的信息存储在 SQL Server 2000 数据库中。你使用了以下脚本为数据库创建了一张名为 Policy 的表。
CREATE TABLE Policy
(
PolicyNumber int NOT NULL DEFAULT (0),
InsuredLastName char (30) NOT NULL,
InsuredFirstName char (20) NOT NULL,
InsuredBirthDate datetime NOT NULL,
PolicyDate datetime NOT NULL,
FaceAmount money NOT NULL,
CONSTRAINT PK_Policy PRIMARY KEY (PolicyNumber)
)
每次公司卖出一条新的保险单,保险单必须被指定一个保险单号码。当一条新的保险单信息被输入时数据库必须指定一个新的保险单号码。你应该做什么?
A. 创建一个 INSTEAD OF INSERT 触发器来产生一个新的保险单号码并且包括把它插入表中。
B. 创建一个 INSTEAD OF UPDATE 触发器来产生一个新的保险单号码并且包括把它插入表中。
C. 创建一个 AFTER UPDATE 触发器来产生一个新的保险单号码并且包括把它插入表中。
D. 用AFTER INSERT 触发器来取代DEFAULT约束并产生一个新的保险单号码并且包括把它插入表中。
答案: A

16.你是一家通讯公司的数据库开发队的一个成员。 在队上的另外一个开发者 , Marc,在一个名为Corporate的数据库中创建了一张名为Customers 的表。因为表包含机密的信息, 他已经授权允许查询该表的只有队里的其他成员。你正在开发一个应用程序用来允许销售部门的职员查看Customers表的一些信息。 这些职员是销售数据库角色的所有成员。 为了支持这一个应用程序,你在Customers表上创建一个被命名的 vwCustomers 的视图。 在创建视图之后,你授权具有销售角色的成员允许查询。当销售角色的成员尝试从视图中取回数据的时候,他们接收以下错误信息:
SELECT permission denied on object ‘Customers’, database ‘Corporate’, owner
‘Marc’.
你必须确定具有销售角色的成员只能使用 vwCustomers 视图来访问 Customers 表的数据。 你应该做什么?
A. 添加一个销售角色到固定的系统管理员服务器角色中。
B. 将 vwCustomers 视图的所有权转移到销售角色中。
C. 通知Marc将Customers表的所有权转移给销售角色的每个成员。
D. 通知Marc授予用户查询Customers表的许可。
E. 删除 vwCustomers 视图。 通知Marc重建视图并且授予销售角色的用户查询视图的权限。
答案: E.

17.你正在为你的公司设计一个SQL Server 2000销售数据库,它能够被客户端的应用程序访问。客服人员和销售人员对数据库中的所有表格应具有插入,删除和查询的权限。另外,使用客户端程序时候,销售人员将由会把数据库中的表通过Excel导出成图解。客服人员属于Windows 2000中的名字叫CSR的组。销售人员属于Windows 2000中的名字叫Marketing的组。你只允许客服人员通过客户端应用程序访问数据库。你却允许销售人员通过客户端应用程序和Excel访问数据库。在数据库中没有授予任何许可权。你该怎么做呢?
C. 为客户应用程序创建一个应用程序角色,授予 这个应用程序角色SELECT, INSERT and UPDATE 权限 。为marketing 雇员创建一个叫Marketing 的数据库角色。添加Windows 2000 Marketing 组到Marketing数据库角色。授予数据库中的所有表有查询Marketing 数据库角色的权限。
答案: C.

18.你是一个在线书店零售商的数据库开发者。客户通过公司的网站订购书。一旦顾客填写了订单,订单的信息将存入一个名为 BookOrders 的数据库内。经过批处理后,订单信息将被转化到一个名叫Reports数据库内。这个数据库含有两个表,一个叫Order,另一个叫LineItem。Order表包括了订单的一些基本信息。LineItem表则包含了订单中一些涉及私人的信息。Order 和LineItem表是将要被给出的。为了使顾客能够通过公司的网站察看而且只能察看自己的订单信息。顾客不能够修改提交过的订单信息。订单的主键和顾客是不相关的,而且是不可见。你应该怎么做呢?

A.创建一个视图显示 ORDER 表的客户信息
B.创建一个存储过程检索 ORDER 表的客户信息
C.创建一个 scalar user-defined function 来检索ORDER的客户信息
D.授予客户对 Order 表和 LineItem 表的查询权限
答案: B.

19.你是一家大型旅行公司的数据库开发者。关于公司每个部门的信息都被储存在一个名叫Department的表中。关于公司的每个旅行社代理商和部门经理的信息被储存在一张Employeest的表中。Department和Employees表将被给出。每个部门经理将被授予数据库管理者的角色。你需要使得这个数据库角色的所有成员能够看到department表中的所有数据。这个角色的成员只能对department数据库的行进行插入和更新操作。你已经授予了这个数据库管理角色选择的权限,接下来你要做什么?

A.在Department表上创建一个触发器,来登记部门成员数据库登陆用户实行插入或更新操作是否属于这个部门成员
B.创建一个视图包括Department表的所有列和Employees表的SQLLogin列
C.在视图定义中包含 WITH CHECK OPTION项。
D.授予Department表的插入和更新权限.
E.授予Employees表的SQLLogin列插入和更新权限.
答案: B.

20.你是你们公司销售数据库的开发者。这个数据库有个名字叫Order的表。创建表的脚本如下:
CREATE TABLE Orders
(
OrderID int NOT NULL,
CustomerID char (5) NOT NULL,
OrderDate datetime DEFAULT GETDATE ( ) NULL,
ShippedDate datetime NULL,
Freight money NULL,
ShipName varchar (40) NULL
)
GO
CREATE CLUSTERED INDEX IX_OrderID ON Orders (OrderID)
GO
CREATE NONCLUSTERED INDEX IX_CustomerID ON Orders (CustomerID)

应用程序将为顾客执行下面的查询语句:
SELECT OrderID, CustomerID, OrderDate
FROM Orders WHERE CustomerID = ‘WHITC’
ORDER BY OrderDate DESC
产生的查询实行计划如查询实行计划展览品中所示。
查询实行计划:

为了使这个查询语句效率高点。你应该作什么?
A.在 OrderDate上创建非群集索引
B.在OrderDate上创建一个群集索引.
C.把 OrderID 上的群集索引换成非群集索引
D.把OrderDate添加到CustomerID的非群集索引中
答案: D.

21.你正在为你的公司设计一个SQL Server 2000销售数据库,你们公司有很多基于网络的应用程序,它们要从销售数据库提取数据。其中的一些应用程序通过EXECUTE语句来进行相应的查询操作。随着使用网络型应用程序的增加。查询将需要更长的时间来执行。如果你要开发一个能够执行大量查询语句的网络应用程序。你要做什么?
A. 用SQL profiler去捕获RPC:Completed 事件,通过 HostName 数据列分类跟踪
B. 用SQL profiler去捕获SQL:StmtCompleted 事件.
通过ApplicationName数据列分类跟踪
C. 用系统监视器监视 SQLServer:Database counter.
Select all counters for the Sales database
D. 用系统监视器监视 SQLServer:General Statistics counter.
Select all counters for the Sales database.
答案: B.

22.你是一个跨国公司的数据库开发者。公司有一个在SQL Server 2000的在线交易处理的数据库。这个数据库有一个销售表,它里面包含了公司的一些固定的信息。在过去的一年,已经有150,000行数据被加到销售数据库中。数据库使用者说数据库慢慢的变得不太好用了。你为了改变数据库的查询销售表的能力,在SQL的查询分析器中要执行哪个脚本语句?
A.     EXEC sp_updatestats 'resample'
B.     CREATE STATISTICS Sales WITH FULLSCAN
C.     Sp_autostats ‘Sales’
D.     UPDATE STATISTICS Sales WITH FULLSCAN ALL
答案: A.

23.你是一个SQL Server 2000的在线交易处理的数据库的开发者。你写了许多存储程序来产生严格的报表。这些存储程序能够访问存在的且索引的数据表。你把储存程序放在生产环境前,你要确定新储存程序有最佳的表现。你也确定数据库的每日操作没被不利的东西影响。
你应该做什么?
A.为包含在存储过程中的每个分析创建一个覆盖索引
B.为存储过程的每个查询创建一个包含WHERE项的每个列的索引
C.从索引运行向导中用输出来确认索引是否应该被添加。
D.在SELECT and WHERE 项的每个分析在所有列中创建一个统计表.
答案: C.

24.你是一个保险公司的数据库开发者。你知道如果数据库在一年前就被生成,那么要执行selects, inserts, and updates操作就需要更长的时间。前期数据库开发者在开发前加入了必要的索引。从那时起,其他的储存过程和表也被加入到数据库中。另外,许多查询都已经没用过了。你为了使数据库的相应时间尽可能加快,你要做什么?
A.执行 DBCC UPDATEUSAGE 语句阻止数据库去更新sysindexes 系统表
B.执行 DBCC SHOW_STATISTICS 语句找到高密度的索引。删除高密度索引
C.运行索引运行向导阻止 a workload file 支持索引创建和删除被建议的索引。
D.用 SQL profiler 寻找表扫描. 添加索引到被发现表扫描的表当中.
答案: C.

25.你是一家运动商品公司的数据库开发者。 公司有一个主办公室和多个横穿美国的地方办公室。一个 56-Kbps 的架构继电器网络连接办公室。 每个办公室有一个包含公司的产品资讯的 SQL Server 2000 数据库。主办公室的SQL Server 数据库用来处理对地方办公室数据库的逐渐增加的更新。用事务响应来运行这些更新。在每四分之一处,你创建一个新的快照文件。 你使用这个快照文件来代替地方的办公室和最近的产品信息的数据库。 这个快照文件现在超过800MB。你将快照文件应用到地方的办公室的数据库中。你想要使用最少量的费用来完成这项任务。你应该怎么做?
A. 使用事务复制。为重新初始化做特定的标记 。
B.拷贝快照到压缩共享的 NTFS 卷中。从共享的NTFS上创建一个CD。分配该CD到地方
办公室。
C.在分配器上的默认快照文件夹中创建一个压缩的快照。从那个文件夹中创建CD。把CD分配到该地方的办公室。
D.在网络上的一个其它可能的快照文件夹中创建一个压缩的快照。
从那个文件夹中创建光盘。分配该光盘到地方的办公室。
E.在网络上的一个其它可能的快照文件夹中创建一个压缩的快照。使用 FTP 将快照分配到地方办公室。
答案:D

26.你是你公司的 SQL Server 2000 的数据库开发者.这一个数据库包含一命为Sales的表, 该表有二百万个列。 Sales表包含了公司所有部门的售卖信息。每个部门被标识于表的 DepartmentID 列中。大多数的访问反对用来为一个单一部门查找销售的表。你要提高这些访问的I/O性能。 然而, 你不想影响访问表的应用程序。你应该怎么做?
A.创建一个新的表,并且移动被最时常访问到的这个表的列。在两个表中保存DepartmentID列。在源表和新的表上创建一个视图。在新的表联结列上加入的一个外键约束。
B.创建一个新的表,并且移动被最时常访问到的这个表的列。在两个表中保存DepartmentID 列.在源表和新的表上创建一个视图。在两个表的 DepartmentID 列上加入一个CHECK约束。
C.为每个部门创建一个新的表, 而且为每个部门将售卖信息移动到那部门的表中。在新表的 DepartmentID 列上加入的一个CHECK约束。在新表上创建一个视图。
D.为每个部门创建一个新的表, 而且为每个部门将售卖信息移动到那部门的表中。在新表上创建一个视图。在视图的DepartmentID列上加入一个CHECK约束。
E.为部门创建一个接受一个输入叁数的存储过程。使用该存储过程返回来自Sales表的结果。
答案:C

27.你是你公司SQL SERVER 2000数据库的数据库开发者。你正在删除数据库不会再使用的对象。你无法删除视图1997Sales。经过调查你发现该视图有如下特性:
(1) 该视图有一聚集索引
(2) sales数据库角色有该视图的权限
(3)该视图有WITH SCHEMABINDING 选项
(4)该视图有一个在线参考模式
(5)该视图上定义了一个INSTEAD OF触发器
在删除该视图前你该做什么?
A.删除该视图上的聚集索引
B.除去该视图上所有权限
C.除去该视图上的WITH SCHEMABINDING 选项
D.除去参考该视图的函数上的WITH SCHEMABINDING 选项
E.禁用该视图上的INSTEAD OF 触发器
答案:D

28.你是proseware inc 的数据库开发者。你为公司创建一个名为humanresources的数据库。这个数据库包含所有雇员的记录和人口统计数据。这家公司有2,000个雇员和有经验的以每年2%的回转率。当他们离开公司是,他们所有的记录必须保存为auditing处理。雇员的人口统计数据以每年9%的改变率变化。你没必要维持人口统计的数据改变的历史。HumanResources的表格显示如下,和用于创建索引的脚本也显示如下:
HumanResources Schema:
 

ALTER TABLE [dbo].[Employee] WITH NOCHECK ADD
CONSTRAINT [pk_Employee] PRIMARY KEY CLUSTERED
([EmployeeID])
WITH FILLFACTOR = 90
GO
ALTER TABLE [dbo].[EmployeeDemographics] WITH NOCHECK ADD
CONSTRAINT [dbo].[EmployeeDemographics] PRIMARY KEY CLUSTERED
([EmployeeID])
WITH FILLFACTOR = 90
GO
你需要保证磁盘有空间和数据文件空间减到最小。所有的varchar列是50%的全部。在创建数据库中你需要定义哪两个参数?(选2)
A. SIZE = 1GB
B. SIZE = 1MB
C. SIZE= 2048KB
D. FILEGROWTH = 20
E. FILEGROWTH = 5%
F.FILEGROWTH = 0
答案:C ,E

29.你是公司sql server 2000数据库的开发者。这个数据库包含一个名为products表格和一个名为companies的表格。你需要用连接服务器插入新的产品信息到products表格中。这个产品表格有个主键是companies表格的外键的约束。在products表格上定义了一个更新触发器。
你需要尽可能快的导出数据。你该怎么做?
A.使用 alter table 语句和 on update 项目来修改 products 表格。
B.使用 alter table 语句和禁用触发器的所有选项来修改 products 表格 。
C.使用 alter table 语句和禁用触发器的所有选项来修改 companies 表格 。
D.使用 alter table 语句和 nocheck constraint 选项来修改 companies 表格 。
E.使用 alter table 语句和 nocheck constraint 选项来修改 products 表格。
答案:E

30.你是公司会计数据库的开发者。数据库包含一个名叫Employees的表。Tom是会计部门的一个成员。Tom的数据库用户帐户对表Employees里的列Salary和BonusPercentage的SELECT权限被拒绝,被授予对其他列的SELECT权限。Tom现在要求访问Employees表里的所有数据。你该怎么做?
A.废除Tom数据库用户帐户对表Employees里的列Salary和BonusPercentage的SELECT权限
B.添加Tom到db_datareader角色
C.添加Tom到db_accessadmin角色
D.授予Tom数据库用户帐户对表Employees里的列Salary和BonusPercentage的SELECT权限。
答案:D

31.你是一个玩具制造厂商的数据库开发者。公司里的成员有主管,管理阶层以及职员。公司内部网络首页显示了根据客户需要修改的每个阶层的员工的信息。当有一员工登陆到公司内部网时,首页验证职工的身份然后显示其充用?的公司信息。公司信息保存在库corporate里的News表中,创建新数据库表的语句如下所示:
CREATE TABLE News
(
NewsID int NOT NULL,
NewsText varchar (8000) NOT NULL,
EmployeePositionType char (15) NOT NULL,
DisplayUntil datetime NOT NULL,
DateAdded datetime NOT NULL DEFAULT (getdate( )),
CONSTRAINT PK_News PRIMARY KEY (NewsID)
)
企业内部网的用户需访问News表,但不能插入、更新或删除表里的数据。你基于你的职位 要将充用?信息传递到企业内部网。你该怎么做?
A.创建一个视图返回那些应用于特殊职位的行
B.创建一个存储过程返回那些应用于特殊职位的行
C.授予每个职位对列EmployeePositionType的SELECT权限
D.授予每个职位对表News的SELECT权限
答案:B

PhoneNumbers
    PhoneNumberID
    AreaCode
    Exchange
    Number
Z     LastName
Z     FirstName
    StreetAddress
    City
    State
    PostalCode
32.你是一个生产在线电话目录的公司的数据库开发者。
有个名为phonenumbers的表格展示如下。
在载入100,000个name到表格,你通过下面的脚本创建索引。
ALTER TABLE [dbo]. [PhoneNumbers] WITH NOCHECK ADD
CONSTRAINT[PK_PhoneNumbers]PRIMARY KEY CLUSTERED (
[FirstName],
[LastName],
) ON [PRIMARY]
GO
CREATE UNIQUE INDEX
[IX_PhoneNumbers] ON [dbo].[PhoneNumbers](
[PhoneNumberID]
) ON [PRIMARY]
GO
你检验数据库的反应。你发现向下面的查询要花费长时间来运行。为生活在某一城市和last name以w开始的人返回所有的名字和电话号码。你该如何改进该查询语句。(选2)
A.用跟随在firstnamega列后的lastname列来更改主键的约束。
B.在city列上添加一个非聚集索引。
C.在areacode,exchange,和number列上创建非聚集索引。
D.删除phonenumberid列上的唯一索引。
E.更改主键约束,换成非聚集索引。
F.在查询分析器中执行更新统计扫描所有的语句。
答案: A,B

33.你是一个保险公司的数据库发展者.你正在查询调整SQL企业管理器的性能。 在查询窗口中,你创建如下的查询语句:
SELECT P.PolicyNumber, P.IssueState, AP.Agent
FROM Policy AS P JOIN AgentPolicy AS AP
ON (P.PolicyNumber = AP.PolicyNumber)
WHERE IssueState = ‘IL’
AND PolicyDate BETWEEN ‘1/1/2000’ AND ‘3/1/2000’
AND FaceAmount > 1000000

你从查询菜单中选择“显示评估执行计划”选项并执行查询产生,查询执行计划被创造并显示在评估计划的图示中。

你将要做什么?
A .重写查询语句删除BETWEEN关键字
B .添加一个包含HASH选项的一个连接提示到查询中
C 添加一个WITH (INDEX (0) )的表提示到Policy的表中
D 更新在Policy的表中的统计表
E 执行在Policy的表中DBCC DBREINDEX语句
答案: D

34.你是一个SQL SERVER 2000 的数据库的开发者。你正计划增加新的索引,删除一些索引并把其它的索引合成并覆盖。在查询之前你必须创建一个报表来展现被使用的索引之后你进行更换。你应该怎么做?
A执行每一个在SQL企业管理器的查询并使用SHOWPLAN_TEXT选项
B执行在SQL企业管理器一个查询,使用显示执行计划选项,并对报表输出
C 运行Index Tuning Wizard相对的工作文件。使用输出报表。
D 执行DBCC SHOW_STATISTICS语句。使用输出报表。
答案: A.

35.你是一个医院数据库的开发者。你正在设计一个SQL SERVER 2000数据库医生,这个数据库包含医生和病人的信息。这个数据库将包含一个名为Physicians和一个名为Patients的表。医生治疗多个病人。病人通常有一个主治医生和一个 辅助医生。主治医生被鉴定作为主治医生。病人的表包含不多于百万行。
你想在当从表中查询数据时增加I/O性能,数据库应该被标准化以达到第三标准格式。
你应该使用哪种脚本来创建表?
A.     CREATE TABLE Physicians
(
Physicians ID int NOT NULL CONSTRAINT PK_Physicians PRIMARY KEY CLUSTERED,
LastName varchar(25) NOT NULL,
)
GO
CREATE TABLE Patients
(
PatientID bigint NOT NULL CONSTRAINT PK_Patients PRIMARY KEY CLUSTERED,
LastName varchar (25) NOT NULL,
FirstName varchar (25) NOT NULL,
PrimaryPhysician int NOT NULL,
SecondaryPhysician int NOT NULL,
CONSTRAINT PK_Patients_Physicians1 FOREIGN KEY (PrimaryPhysician) REFERENCES
Physicians (PhysicianID),
CONSTRAINT PK_Patients_Physicians2 FOREIGN KEY (SecondaryPhysician) REFERENCES
Physicians (PhysicianID)
)
B.     CREATE TABLE Patients
(
PatientID smallint NOT NULL CONSTRAINT PK_Patients PRIMARY KEY CLUSTERED,
LastName varchar(25) NOT NULL,
FirstName varchar (25) NOT NULL,
PrimaryPhysician int NOT NULL,
SecondaryPhysician int NOT NULL,
)
GO
CREATE TABLE Physicians
(
PhysicianID smallint NOT NULL CONSTRAINT PK_Physicians PRIMARY KEY CLUSTERED,
LastName varchar (25) NOT NULL,
FirstName varchar (25) NOT NULL,
CONSTRAINT PK_Physicians_Patients FOREIGN KEY (PhysicianID) REFERENCES Patients
(PatientID)
)
C.     CREATE TABLE Patients
(
PatientID bigint NOT NULL CONSTRAINT PK_Patients PRIMARY KEY CLUSTERED,
LastName varchar (25) NOT NULL,
FirstName varchar (25) NOT NULL,
)
GO
CREATE TABLE Physicians
(
PhysicianID int NOT NULL CONSTRAINT PK_Physician PRIMARY KEY CLUSTERED,
LastName varchar (25) NOT NULL,
FirstName varchar (25) NOT NULL,
)
GO
CREATE TABLE PatientPhysician
(
PatientPhysicianID bigint NOT NULL CONSTRAINT PK_PatientsPhysicians PRIMARY KEY
CLUSTERED,
PhysicianID int NOT NULL,
PatientID bigint NOT NULL,
PrimaryPhysician bit NOT NULL,
FOREIGN KEY (PhysicianID) REFERENCES Physicians (PhysicianID),
FOREIGN KEY (PatientID) REFERENCES Patients (PatientID)
)
D.     CREATE TABLE Patients
(
PatientID int NOT NULL PRIMARY KEY,
LastName varchar (25) NOT NULL,
FirstName varchar (25) NOT NULL,
)
GO
CREATE TABLE Physicians
(
PhysicianID int NOT NULL PRIMARY KEY,
LastName varchar (25) NOT NULL,
FirstName varchar (25) NOT NULL,
)
GO
CREATE TABLE PatientPhysician
(
PhysicianID int NOT NULL REFERENCES Physicians (PhysicianID),
PatientID int NOT NULL REFERENCES Patients (PatientID), PrimaryPhysician bit NOT NULL,
CONSTRAINT PK_PatientsPhysicians PRIMARY KEY (PhysicianID, PatientID)
)
答案: D.

36.你是你公司的SQL 2000 SERVER 数据库的开发者。这个数据库包含一个名为Invoices的表,你是一个db_ownerrole的角色。Eric是HR的一个数据库角色的成员,他在Invoices表中创建了一个 的触发器,Eric不在办公室工作,并且触发器不在需要。你在Sales数据库执行如下语句去删除触发器:
DROP TRIGGER Trey_Research_updateInvoices
你收到了如下错误信息:
Cannot drop the trigger ‘Trey_Research_updateInvoices’,because it does not exist in the system catalog.
在你删除触发器之前你应该怎么做?
A 添加你的登录名到HR的数据库角色
B 在DROP TRIGGER语句中限制触发器拥有者的触发器名
C 在执行DROP TRIGGER语句之前禁止触发器
D 在DROP TRIGGER语句中限定触发器的数量
E 从Sysobiects和syscomments的系统表中除去触发器的文本
答案 : B
37.你已经为一个WEB站点设计一个数据库,这个数据库被使用来购买音乐会的票在购买票的期间,,一个购买者观察到一个可获得票的清单表,他判定是否能买到这些票,并试图购买这些票。用游标重新检索到这张可获得票的清单表。
对于这个流行的音乐会,成千上万的购买者同时试图去购买票。由于在任何时间有潜在地许多购买者,你必须在同一时间允许最大可能访问数据。你应该如何设计游标?
A 创建一个游标包含在显示事务,并设置事务隔离级别在Repeatableread
B 创建一个使用乐观并发游标并定位更新。在游标中,放置定位更新语句在显示事务中
C 创建一个显示事务的游标。在游标中,使用UPDATE语句详细说明在WHERE语句中需要被更新的关键行,并把UPDATE语句放置到隐性事务中
D 创建一个使用定位更新的游标。并且在游标的定义中使用包含SCROLL_LOCKS辅助信息来强迫执行悲观并发。在游标中,在隐性事务游标中放置定位更新。
答案: B.

38.你是一个管理用电话来调查消费者偏爱的音乐信息的数据库开发者。当从调查的参与者中接收到返回的调查信息,这些调查信息被插入到SurveyData.表中。所有的调查的返回信息被接收,并产生了总结结果。你被要求创建一个抽取每个返回的调查中第五行的信息总结,你需要尽快的产生一个总结。 你应该怎么做?
A 使用游标检索调查中的所有数据。使用FETCH RELATIVE 5语句从游标查询总结
B 使用一个SELECT INTO语句去检索调查中的数据到临时表中。使用SELECT TOP 1语句去检索临时表中的第一行
C 设置查询的行数为5行,使用SELECT语句检索和总结调查的数据
D 使用一个 SELECT TOP 5语句去检索和总结调查的数据
答案: A.

39.你是一家木材公司的数据库开发者。 你正在执行一个移动的操作从一个平面文件数据库到 SQL 服务器 2000 。你将平面文件数据库输出到定义了逗号格式的文本文件中.文本文件在输入文件展示按钮中被显示。
1111, ‘*4 Interior’, 4, ‘Interior Lumber’, 1.12
1112, ‘2*4 Exterior’, 5, ‘Exterior Lumbar’, 1.87
2001, ‘16d galvanized’,2, ‘Bulk Nails’, 2.02
2221, ‘8d Finishing brads’,3, ‘Nails’, 0.01
你需要把这个文件输入到表名为 Product and Category的 SQL 服务器中。 Product 和 Category表如图所示:

你想要使用最少量的管理工作来输入数据。 你应该做什么?
A. 使用 bcp 实用程序, 而且指定-t 选项。
B. 使用大容量插入语句, 而且指定 FIRE_TRIGGERS
C. 使用 SQL- DMO BulkCopy2 对象而且设置TableLock 属性为TURE。
D. 使用数据转换服务创建二个数据转换任务。
对于每个任务,把文本文件那一列映射到数据库列中。
答案: D.

40.你是Woodgrove银行中一个名为Account数据库的开发者。一位开发人员为银行创建了一个多列的应用程序。银行的职员将使用这个应用程序来管理用户帐户。开发者需要从accounts数据库取回客户名字放到应用程序的表格中。 应用程序的一个使用者将会使用该表格找出客户帐户。数据库包含超过 50,000个客户帐户。因此,开发者想要通过表格只取回 25个列作为使用者的目录。 客户的最新列表一定总是对应用程序是可用的。当执行drop-down 表格时, 你需要为开发者推荐一个使用策略。你应该推荐什么?
A. 创建一个存储过程来取回所有的被载入表格的数据。
B. 使用一个 API server-side 光标取回被载入表格的数据。
C. 使用SELECT语句立刻取回所有的数据, 然后将数据载入表格之内。
D. 使用 SQL事务 server-side 光标取回被载入表格的数据。
答案: B.

41.你是Litware,Inc的数据库开发者。你正在修改该公司的sales数据库结构。该数据库将客户信息储存在Customers的表中。该表包含一个字段Country,其储存了客户所在的国家。你又创建一个新表Country。创建Customer和Country表的语法如下所示:
CREATE TABLE dbo.Country
(
CountryID int IDENTITY(1,1) NOT NULL,
CountryName char(20) NOT NULL,
CONSTRAINT PK_Country PRIMARY KEY CLUSTERED (CountryID)
)
CREATE TABLE dbo.Customers
(
CustomerID int NOT NULL,
CustomerName char(30) NOT NULL,
Country char(20) NULL,
CONSTRAINT PK_Customers PRIMARY KEY CLUSTERED (CustomerID)
)
你要尽可能快地将Customer表里头Country的信息转移到新Country表,该选用下面的哪条语句?
A.     INSERT INTO Country (CountryName)
SELECT DISTINCT Country
FROM Customers
B.     SELECT (*) AS ColID, c1.Country
INTO Country
FROM (SELECT DISTINCT Country FROM Customers)AS c1,
(SELECT DISTINCT Country FROM Customers) AS c2,
WHERE c1.Country >=c2.Country
GROUP BY c1.Country ORDER BY 1
C.     DECLARE @Country char (20)
DECLARE cursor_country CURSOR
FOR SELECT Country FROM Customers
OPEN cursor_country
FETCH NEXT FROM cursor_country INTO @Country
WHILE (@@FETCH_STATUS <> -1)
BEGIN
If NOT EXISTS (SELECT CountryID
FROM Country
WHERE CountryName = @Country)
INSERT INTO Country (CountryName) VALUES (@Country)
FETCH NEXT FROM cursor_country INTO @Country
END
CLOSE cursor_country
DEALLOCATE cursor_country
D.     DECLARE @SQL varchar (225)
SELECT @SQL = ‘bcp “SELECT ColID = COUNT(*), c1. Country’ +
‘FROM (SELECT DISTINCT Country FROM Sales..Customers) AS
c1, ' +
(SELECT DISTINCT Country FROM Sales..Customers) AS c2 '
+
WHERE c1.Country >= c2.Country’ +
‘GROUP BY c1.Country ORDER BY 1’ +
‘query out c:\country.txt -c’
EXEC master..xp_cmdshell @SQL, no_output
EXEC master..xp_cmdshell ‘bcp Sales..Country in c:\country. Txt-c’, no_output
答案:C

42.你是Contoso,Ltd 的数据库开发者。公司有一数据库HumanResources存储着所有员工及办公室位置信息。该库也存储着潜在员工及办公室的位置信息。包含这些信息的表如下所示:

当前员工都分配有一个位置,当前位置都安排有一或多个员工。潜在员工则还没分配位置,潜在位置也都还未安排员工。你要创建一个报告显示所有当前及潜在的员工和办公室位置。你需列出已分配每一员工的当前及潜在位置。潜在员工应列在一起。你该选哪个语句?
A.     SELECT l.LocationName, e.FirstName, e.LastName
FROM Employee AS e LEFT OUTER JOIN Location AS 1
ON e.LocationID= l.LocationID
ORDER BY l.LocationName, e.LastName, e.FirstName
B.     SELECT l.LocationName, e.FirstName, e.LastName
FROM Location AS 1 LEFT OUTER JOIN EMPLOYEE AS 1
ON e.LocationID= l.LocationID
ORDER BY l.LocationName, e.LastName, e.FirstName
C.     SELECT l.LocationName, e.FirstName, e.LastName
FROM Employee AS e FULL OUTER JOIN Location AS 1
ON e.LocationID= l.LocationID
ORDER BY l.LocationName, e.LastName, e.FirstName
D.     SELECT l.LocationName, e.FirstName, e.LastName
FROM Employee AS e CROSS JOIN Location AS 1
ORDER BY l.LocationName, e.LastName, e.FirstName
E. SELECT l.LocationName, e.FirstName, e.LastName
FROM Employee AS e, Location AS 1
ORDER BY l.LocationName, e.LastName, e.FirstName
答案: C.

43.你是一个网上定票数据库开发者。每一单独事件的可用票有500或更多。大部分的申请用户在购买票之前可查阅到的不多于50张。然而,须让用户看到整个可用票的清单。一旦用户定了票,票据清单须被更新以反映那些被定走了的票。用户才可以从清单里头选票、购票。你要让用户查阅并购买可用票。你该怎么做?
A.使用可移动静态光标去检索票据清单
使用光标定位升级购票
B.使用可移动自动光标去检索票据清单
    使用光标定位升级购票
C.使用存储过程检索票据清单
    再用存储过程购票
D.使用用户定义函数检索票据清单
    再用存储过程购票
答案:B

44.你是一数据库顾问。你被地方性的狗的养育者聘请开发一个数据库。该数据库用来存储他养的狗的信息。你用下列语句创建一个表Dogs:
CREATE TABLE[dbo].[Dogs]
(
[DogID] [int] NOT NULL,
[BreedID] [int] NOT NULL,
[DateofBirth] [datetime] NOT NULL,
[WeightAtBirth] [decimal] (5, 2) NOT NULL,
[NumberOfSiblings] [int] NULL,
[MotherID] [int] NOT NULL,
[FatherID] [int] NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Dogs] WITH NOCHECK ADD
CONSTRAINT [PK_Dogs]PRIMARY KEY CLUSTERED
(
[DogID]
) ON [PRIMARY]
GO
你须保证每条狗的MotherID和FatherID列都有有效值。我们要实行该规则并确保将磁盘片输入/输出减到最少。
你该怎么做?
A.在表Dogs上创建一个AFTER INSERT 触发器回滚MotherID和FatherID无效的事务。
B.在MotherID和FatherID列上创建一个CHECK约束
C.创建两个外键约束:一个在MotherID上,另一个在FatherID上,且两个的主键都是DogID。
D.创建一个规则,把它绑到MotherID和FatherID上。
答案:C

45.你是一个提供商议服务的公司的数据库开发者。公司将其员工信息储存于表Employee。创建Employee表的语句如下:
CREATE TABLE Employee
(
EmployeeID int NOT NULL;
EmpType char (1) NOT NULL,
EmployeeName char (50) NOT NULL,
Address char (50) NULL,
Phone char (20) NULL,
CONSTRAINT PK_Employee PRMARY KEY (Employee ID)
)
该表里的EmpType列用来识别员工为主管、管理阶层或顾问。你要让管理阶层的员工只能添加、修改、删除非主管职员的信息。
你该怎么做?
A.创建一个视图,包含WITH ENCRYPTION 选项
B.创建一个视图,包含WITH CHECK OPTION 选项
C.创建一个视图,包含SCHEMABINDING选项
D.创建一个视图,其中再建一个索引
E.创建一个用户自定义函数返回一个包含非主管职员的表。
答案:B

46.你是一家电力公司的数据库开发者。当客户在约定的时间之前的费用没有全部交纳,这费用将以每天增加1%直到交纳完。公司需要一个跟踪overdue 的钱数。你要创建一个存储过程来更新平衡和报告overdue的钱数。这个存储过程显示如下:
1     create procedure procUpdataBalances
2     as
3     begin
4    
5     declare @Err int
6     set @Err=-1
7    
8     update statements
9     set balance =balance *1.01
10     where duedate<gatedate()
11    
12     set @Err = @@ERROR
13    
14     If @Err = 0
15         Return @@ROWCOUNT
16     Else
17           Return @Err
18    
19     END
每次存储过程没有错误能运行,它报告0的overdue。然而,你的overdue的平衡是因为被该存储过程更新了。
你该怎么做来纠正这个问题?
A.把该存储过程的第12-17行改为下面的语句:
  Return @@ROWCOUNT
B.把该存储过程的第5-6行改为下面的语句:
    DECLARE @count int
把该存储过程的第12-17行改为下面的语句:
SET @Count = @@ROWCOUNT
If @@ERROR = 0
Return @Count
Else
Return –1
C.把该存储过程的第5行改为下面的语句:
    DECLARE @Err int, @Count int  
把该存储过程的第12-17行改为下面的语句:
SELECT @Err = @@ERROR, @Count = @@ROWCOUNT
IF @Err = 0
Return @Count
Else
Return @Err
D. 把该存储过程的第5行改为下面的语句:
  Return @@Error
E.把该存储过程的第5行改为下面的语句:
  DECLARE @Err int, @Count int
把该存储过程的第9行改为下面的语句:
SET Balance = Balance * 1.01, @Count = Count (*)
Replace line 15 with the following:
Return @Count
答案:C

47.你是一家在线电子公司的数据库开发者。该公司的产品目录保存在products表中。在正常的生意期间,products表频繁的被访问。
针对products表的修改被写入pendingproductupdate表。这些表格显示如下:

在营业时间后将使用pendingproductupdate表来更新products表。这个数据库服务器运行的是sql server 2000和放置到8.0兼容性模型。你要创建一个脚本来更新products表。你将选择下面哪个脚本?
A.     UPDATE Products
SET p1.[Description] = p2.[Description], p1.UnitPrice = p2.UnitPrice
FROM Products p1, PendingProductUpdate p2
WHERE p1.ProductID= p2.ProductID
GO
TRUNCATE TABLE PendingProductUpdate
GO
B.     UPDATE Products p1
SET [Description] = p2.[Description], UnitPrice = p2.UnitPrice
FROM Products, PendingProductUpdate p2
WHERE p1.ProductID= p2.ProductID
GO
TRUNCATE TABLE PendingProductUpdate
GO
C.     UPDATE Products p1
SET p1.[Description] = p2.[Description], p1.UnitPrice = p2.UnitPrice
FROM (SELECT [Description], UnitPrice
FROM PendingProductUpdate p2
WHERE p1.ProductID= p2.ProductID)
GO
TRUNCATE TABLE PendingProductUpdate
GO
D.     UPDATE p1
SET p1.[Description] = p2.[Description], p1.UnitPrice = p2.UnitPrice
FROM Products p1, PendingProductUpdate p2
WHERE p1.ProductID= p2.ProductID
GO
TRUNCATE TABLE PendingProductUpdate
答案 :D

48.你是出口产品到全世界的运动商品公司的数据库开发者。公司存储它的销售信息于sales数据库。客户名字存储在这个数据库的customers的表格里。用于创建这个表格的脚本显示如下:
CREATE TABLE Customers
(
CustomerID int NOT NULL,
CustomerName varchar(30) NOT NULL,
ContactName varchar(30) NULL,
Phone varchar(20) NULL,
Country varchar(30) NOT NULL,
CONSTRAINT PK_Customers PRIMARY KEY (CustomerID)
)
通常每个国家只有一或二个客户。然而,一些国家有多达20个客户销售部门要对准能超过10个客户的国家做广告。你要为销售部门创建这些国家的清单。你将使用哪个脚本?
A     SELECT Country FROM Customers
GROUP BY Country HAVING COUNT (Country)>10
B.     SELECT TOP 10 Country FROM Customers
C.     SELECT TOP 10 Country FROM Customers
FROM (SELECT DISTINCT Country FROM Customers) AS X
GROUP BY Country HAVING COUNT(*)> 10
D.     SET ROWCOUNT 10
SELECT Country, COUNT (*) as “NumCountries”
FROM Customers
GROUP BY Country ORDER BY NumCountries, Desc
答案:A

49.你是一个销售机构的数据库开发者,你的数据库有个表名为Sales,包含有关于从销售员的销售定单的汇总信息。销售管理人员要你创建一个有20最高的销售的销售员的一个报表。哪个查询语句可以用来完成这项。
A.     SELECT TOP 20 PERCENT LastName, FirstName, SUM (OrderAmount) AS ytd
FROM sales
GROUP BY LastName, FirstName
ORDER BY 3 DESC
B.     SELECT LastName, FirstName, COUNT(*) AS sales
FROM sales
GROUP BY LastName, FirstName
HAVING COUNT (*) > 20
ORDER BY 3 DESC
C.     SELECT TOP 20 LastName, FirstName, MAX(OrderAmount) AS ytd
FROM sales
GROUP BY LastName, FirstName
ORDER BY 3 DESC
D.     SELECT TOP 20 LastName, FirstName, SUM (OrderAmount) AS ytd
FROM sales
GROUP BY LastName, FirstName
ORDER BY 3 DESC
E.     SELECT TOP 20 WITH TIES LastName, FirstName, SUM (OrderAmount) AS ytd
FROM sales
GROUP BY LastName, FirstName
ORDER BY 3 DESC
答案:E

50.你是一个旅行代理的数据库开发者。在Airlines数据库中有一个表为Flight Times,包含所有定期航线的飞行信息。旅行代理用一个企业内部互联网应用程序来管理旅行预定。这个应用程序从Flight Times表中为毎个定期航线检查信息.你的分司主要有一个特殊的定期航线,在这个Airlines数据库里这个特殊的定期航线有一个唯一的标示符101。这个应用程序除了有为定期航线说明价格外,必须有要求飞行航次。此程序应该有为定期航线要求 说明价格,恰好有一个有同航线的飞行航次被需要。你应该怎么做?
A.创建两个存储过程,规定其中一个可以接受参数而另外一个没有。
B.创建一个用户自定义函数使得接受一个默认值参数为101。
C.创建一个存储过程使得接受一个默认值参数为101。
D.创建一个视图,在表FlightTimes表中填入101。
E.创建一个默认值为101在FlightTtTimes表中。
答案:C

51.你是一个翼尖玩具的数据库开发者。你有创建一个定单项目数据库,包含有两个表显示在下图

用户进入定单到项目应用程序。当一个新定单被加入,数据被保存到Order和LineItem表中在定单项目数据库里。你必须确定整个定单被成功的保存。你应该用以下哪个语句?
A.     BEGIN TRANSACTION Order
INSERT INTO Order VALUES (@ID, @CustomerID, @OrderDate)
INSERT INTO LineItem VALUES (@ItemID, @ID, @ProductID, @Price)
SAVE TRANSACTION Order
B.     INSERT INTO Order VALUES (@ID, @CustomerID, @OrderDate)
INSERT INTO LineItem VALUES (@ItemID, @ID, @ProductID, @Price)
IF (@@Error = 0)
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
C.     BEGIN TRANSACTION
INSERT INTO Order VALUES (@ID, @CustomerID, @OrderDate)
IF (@@Error = 0)
BEGIN
INSERT INTO LineItem
VALUES (@ItemID, @ID, @ProductID, @Price)
IF (@@Error = 0)
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
END
ELSE
ROLLBACK TRANSACTION
END
D.     BEGIN TRANSACTION
INSERT INTO Order VALUES (@ID, @CustomerID, @OrderDate)
IF (@@Error = 0)
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
BEGIN TRANSACTION
INSERT INTO LineItem VALUES (@ItemID, @ID, @ProductID, @Price)
IF (@@Error = 0)
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
答案:C

52.你是一个真空吸尘器销售公司的数据库开发者。公司已有一个名为Sales的数据库,包含有VacuumSales表和Employee表。销售信息存储在VacuumSales表中,雇员信息存储在employee表中,在Employee表中有一位列名为IsActive.这个列表明是否有雇员被当前雇用。Employee表也有一个列为EmployeeID是毎个雇员的唯一标示符。所有的销售输入到VacuumSales表必须包含当前被雇用的雇员的employee ID。你应该如何来实现这个要求?
A.用微软分布式事务处理Employee表在分布式处理中如果EmployeeID没有执行则将回滚整个事务。
B.在VacuumSales表的EmployeeID列中添加一个CHECK约束。
C.在VacuumSales表的EmployeeID列中添加一个外键约束参照Employee表中的EmployeeID列。
D.在VacuumSales表中添加一个FOR INSERT触发器。在触发器中,在inserted表的基础上连接Employee表和EmployeeID表,测试IsActive列。
答案:D

53.你是一个在线回扣公司的数据库开发者。客户拥有的存货价格在SQL Server 2000数据库中。为了对存货价格历史记录做跟踪所有存货价格被记录的更新。为了纠正关于价格更新,每天发生的错误必须也被记录。当错误被记录时,标识存储产生错误的消息必须被返回到客户应用程序。你必须确定合适的条件被记录和合适的的消息被生成。你应该用哪个过程?
A.     CREATE PROCEDURE UpdateStockPrice @StockID int, @Price decimal
AS BEGIN
DECLARE @Msg varchar(50)
UPDATE Stocks SET CurrentPrice = @Price
WHERE StockID = @ StockID
AND CurrentPrice <> @ Price
IF @@ERROR <> 0
RAISERROR (‘Error %d occurred updating Stock %d.’, 10, 1, @@ERROR, @StockID) WITH
LOG
IF @@ROWCOUNT > 0
BEGIN
SELECT @Msg = ‘Stock’ + STR (@StockID) + ‘updated to’ + STR (@Price) + ‘.’
EXEC master. . xp_LOGEVENT 50001, @Msg
END
END
B.     CREATE PROCEDURE UpdateStockPrice @StockID int, @Price decimal
AS BEGIN
UPDATE Stocks SET CurrentPrice = @Price
WHERE StockID = @ StockID
AND CurrentPrice <> @ Price
IF @@ERROR <> 0
PRINT ‘ERROR’ + STR(@@ERROR) + ‘occurred updating Stock’ +STR (@StockID)+ ‘.’
IF @@ROWCOUNT > 0
PRINT ‘Stock’ + STR (@StockID) + ‘updated to’ + STR (@Price) + ‘.’
END
C.     CREATE PROCEDURE UpdateStockPrice @StockID int, @Price decimal
AS BEGIN
DECLARE @Err int, @RCount int, @Msg varchar(50)
UPDATE Stocks SET CurrentPrice = @Price
WHERE StockID = @ StockID
AND CurrentPrice <> @ Price
SELECT @Err = @@ERROR, @RCount = @@ROWCOUNT
IF @Err <> 0
BEGIN
SELECT @Msg = ‘Error’ + STR(@Err) + ‘occurred updating Stock’ + STR (@StockID) + ‘.’
EXEC master..xp_logevent 50001, @Msg
END
IF @RCOUNT > 0
BEGIN
SELECT @Msg = ‘Stock’ + STR (@StockID) + ‘updated to’ + STR (@Price) + ‘.’
EXEC master. . xp_LOGEVENT 50001, @Msg
END
END
D.     CREATE PROCEDURE UpdateStockPrice @StockID int, @Price decimal AS BEGIN
DECLARE @Err int, @RCount int, @Msg varchar (50)
UPDATE Stocks SET CurrentPrice = @Price
WHERE StockID = @StockID
AND CurrentPrice <> @Price
SELECT @Err = @@ERROR, @RCount = @@ROWCOUNT
If @Err <> 0
RAISEERROR (‘Error %d occurred updating Stock %d.’, 10, 1, @Err, @StockID) WITH LOG
If @RCount > 0
BEGIN
SELECT @Msg = ‘Stock’ + STR (@StockID) + ‘update to’ + STR (@Price) + ‘.’
EXEC master. . xp_logevent 50001, @Msg
END
END
答案:D

54.你是一个贷款业务公司的数据库开发者。你设计了数据库事务来支持一个新数据项目应用程序。新数据项目应用程序的用户将从数据库中检索贷款信息。用户将改变信息和保存更新信息到数据库。你应怎么设计这事务?
(点击选择和位置按钮然后合适的安排选择除了合适的事务步骤。)

答案:


55.你是一个货车租借公司的数据库开发者。公司创建了一个web 设置使用户能用来保留租约你设计SQL server 2000数据库来支持此web 设置。新租借的存储物被插入到Reservations表中。用户有保存租约能够回到web设置和更新他们的贮存物。当一个贮存物被更新,整个已有的贮存物必须复制到History表中。有时,用户将保存已有的贮存物不应该复制到History表。你需求开发一种创建合适的项目方法 在History表中。你应该做什么?
A.在Reservations表中创建一个触发器到创建的History表项目中。
B.在Reservations表中创建一个级联更新参照完整性约束到创建的History表项目中。
C.在Reservations表中创建一个视图。包含 WITH SCHEMABINDING 选项在视图定义中。
D.在Reservations表中创建一个视图。包含 WITH CHECK 选项在视图定义中。
答案:A

56.你是一个Inc.Proseware的数据库开发者.公司有一个数据包含关于公司定位在具体的邮政号码的信息。此信息是包含在这个数据库里的公司表。通常地,数据库包含有五个不同的邮政号码。在公司数据中。公司号在特定邮政号码普遍地范围是从10到5000。超过公司和邮政号码将被加到数据库中通过计时。你创建一个查询从数据库中检索信息。你需要提供新数据按照构造唯一的最小限度更换到数据库。你的查询性能通过公司返回的号码必须不可以受影响。你需要创建一个查询来完成一致地和最小限度的未来的维修。你应该怎么做?
A.创建一个存储过程,要求一个邮政号码作为一个参数。包含 WITH RECOMPILE选项当过程被创建时。
B.为毎个邮政号码创建一个存储过程。
C.为毎个邮政号码创建一个视图。
D.将公司的表分为多个表以至于每个表包含一个邮政号码,在表中建立一个分割视图以至于在单一表上数据仍然可以查看
答案:A

57.你是woodgrove 银行的一个数据库开发者.你正在把数据载入SQLServer2000 数据库.数据被临时载入Staging表中.当数据载入过程完成时,数据从这个表中被删除.不需要还原这个被删除的表.你要尽可能快的确信数据从Sraging表中被删除,你应该怎么做?
A 使用delete 语句从表中还原数据
B 使用 truncate table语句从表中还原数据
C 使用 drop table语句从表中还原数据
D 使用一个可更新的游标访问和还原表中的毎一行数据
答案:B

58.你是一个汽车代理权的数据库开发者.你正设计一个数据库来支持一个web,使这个网页用来购买汽车,某人从网页上购买一辆汽车,将能够选择模型和顔色.产商做了4个不同的汽车模型.模型能够以5种顔色中的任一种被定购.每一种模型有一个默认的顔色.模型被存放在一个Models表中,顔色被存放在一个Colors表中.这些表如下所示:

  你需要创建一个清单存放所有可能的模型和顔色的组合. 你将使用哪一个脚本?
A.     SELECT m.ModelName, c.ColorName
FROM Colors AS c FULL OUTER JOIN Models AS m
ON c.ColorID = m.ColorID
ORDER BY m.ModelName, c.ColorName
B.     SELECT m.ModelName, c.ColorName
FROM Colors AS c CROSS JOIN Models AS m
ORDER BY m.ModelName, c.ColorName
C.     SELECT m.ModelName, c.ColorName
FROM Colors AS m INNER JOIN Colors AS c
ON m.ColorID = c.ColorID
ORDER BY m.ModelName, c.ColorName
D.     SELECT m.ModelName, c.ColorName
FROM Colors AS c LEFT OUTER JOIN Models AS m
ON c.ColorID = m.ColorID
UNION
SELECT m.ModelName, c.ColorName
FROM Colors AS c RIGHT OUTER JOIN Models AS m
ON c.ColorID = m.ColorID
ORDER BY m.ModelName, c.ColorName
E.     SELECT m.ModelName
FROM Models AS m
UNION
SELECT c.ColorName
FROM Colors AS c
ORDER BY m.ModelName
答案:B

59.你是Adventure Works的数据库开发者.大型数据有已经从一个人类资源应用输出到一个文本文件.被用来输出人类资源数据的Format File如下所示:
Format File
1 SQLINT 0 4 “,” 1 EmployeeID “”
2 SQLCHAR 0 50 “,” 2 Firstname SQL_Latin1_General_CP1_AS
3 SQLCHAR 0 50 “,” 3 Lastname SQL_Latin1_General_CP1_AS
4 SQLCHAR 0 10 “,” 4 SSN SQL_Latin1_General_CP1_AS
5 SQLDATETIME 0 8 “” 5 Hiredate “”
你需要把数据输入到一个Employee表中.那表如下所示:

你要尽可能快的运行这个输入,你该怎么做?
A 使用SQL-DMO and Microsoft Visual Basic Scripting Edition 来创建一个表对象.
使用表对象的导入数据方式来载入这个表
B 使用SQL-DMO and Microsoft Visual Basic Scripting Edition 来创建一个数据库对象.使用数据库对象的拷贝方式来载入这个表
C 使用DTS和Microsoft Visual Basic Scripting edition来创建一个包.为文本文件创建一个连接对象.增加一个大容量插入任务到包.使用包的执行方式来载入数据.
D 使用DTS和Microsoft Visual Basic Scripting edition来创建一个包.为文本文件创建一个连接对象.增加一个ExecuteSQLTask2 到包.使用执行ExecuteSQLTask2 方式来载入数据.
答案:C

60.你是一个保险公司的数据库开发者.那公司有一个Policies数据库.你有为这个数据库设计存储程序,使用游标来处理大型结果组合.使用存储过程的分析者报到在数据出现前有一个长的延迟.在延迟之后,结果是正确的.仅仅执行数据分析的分析者,使用Policies数据库.你想要输入存储程序的结果,你将使用哪一个脚本?
A. EXEC sp_configure ‘cursor threshold’, 0
B. EXEC sp_dboption ‘Policies’ SET CURSOR_CLOSE_ON_COMMIT ON
C. SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
D. ALTER DATABASE Policies SET CURSOR_DEFAULT LOCAL
答案:A

61.你是一个书店的数据库开发者.你正设计一个存储程序来处理XML文档.你使用下面的脚本来创建存储程序:
CREATE PROCEDURE spParseXML (@xmlDocument varchar(1000)) AS
DECLARE @docHandle int
EXEC sp_xml_preparedocument @docHandle OUTPUT, @xmlDocument
SELECT *
FROM OPENXML (@docHandle, ‘/ROOT/Category/Product’,2)
WITH (ProductID int,
CategoryID int,
CategoryName varchar (50),
[Description] varchar (50))
EXEC sp_xml_removedocument @docHandle
你执行这个存储程序和使用一个XML文档作为那输入文档。 XML文档如下所示:
xml Document
<ROOT><Category CategoryID= “1” CategoryName= “General Books”><Product ProductID=“10248” Description=“Cooking foryou”></Product></Category><Category CategoryID= “2” CategoryName= “Videos”><Product ProductID= “80248” Description= “7 Minute Abs”></Product></Category><Category CategoryID= “3” CategoryName= “Computer Books”><Product ProductID= “12345” Description= “Inside SQLServer 2000”></Product><Product ProductID= “22345” Description= “AnalysisServices with SQL Server 2000”></Product></Category></ROOT>
你接收到输出如下所示:
Output
ProductID CategoryID CategoryName DescriptionNULL NULL NULL NULLNULL NULL NULL NULLNULL NULL NULL NULLNULL NULL NULL NULL(4 row(s) affected)
你需要取代存储过程主体部份,你将使用哪一个脚本?
A.     SELECT *
FROM OPENXML (@docHandle, ‘/ROOT/category/Product’, 1)
WITH (ProductID int,
CategoryID int,
CategoryName varchar(50),
[Description] varchar (50))
B.     SELECT *
FROM OPENXML (@docHandle, ‘/ROOT/category/Product’, 8)
WITH (ProductID int,
CategoryID int,
CategoryName varchar(50),
[Description] varchar (50))
C.     SELECT *
FROM OPENXML (@docHandle, ‘/ROOT/category/Product’, 1)
WITH (ProductID int,
CategoryID int,
CategoryName varchar(50), ‘@CategoryName’,
[Description] varchar (50))
D.     SELECT *
FROM OPENXML (@docHandle, ‘/ROOT/category/Product’, 1)
WITH (ProductID int,
CategoryID int ‘../@CategoryID’,
CategoryName varchar(50), ‘../@CategoryName’,
[Description] varchar (50))
答案:D

62.你是Adventure Works 的一个数据库开发者。你正为记录毎年工资信息的人类资源部门设计一个脚本。有三种类型的职员。一些职员挣每小时的工资,一些是薪水,还有一些按他们所做的销售来付给。这些数据被记录在Wages表中。用以下语句创建表:
CREATE TABLE Wages
(
emp_id tinyint identity,
hourly_wage decimal NULL,
salary decimal NULL,
commission decimal NULL,
num_sales tinyint NULL
)
一个职员能有仅仅一种类型的工资信息。你必须正确记录每一个职员毎一年的工资信息。你应该使用哪一个脚本?
A.     SELECT CAST (hourly_wage * 40 * 52 +
salary +
commission * num_sales AS MONEY) as YearlyWages
FROM Wages
B.     SELECT CAST (COALESCE (hourly_wage * 40 * 52,
Salary,
commission * num_sales) AS MONEY) as YearlyWages
FROM Wages
C.     SELECT CAST (CASE
WHEN((hourly_wage,) IS NOTNULL) THEN hourly_wage * 40 * 52
WHEN(NULLIF(salary,NULL)IS NULL)THEN salary
ELSE commission * num_sales
END
AS MONEY)
As YearlyWages
FROM Wages
D.     SELECT CAST(CASEWHEN (hourly_wage IS NULL)THEN salary
WHEN (salary IS NULL)THEN commission*num_sales
ELSE commission * num_sales
END
AS MONEY)
As YearlyWages
FROM Wages
答案:B  
CAST 和 CONVERT
将某种数据类型的表达式显式转换为另一种数据类型。CAST 和 CONVERT 提供相似的功能。
COALESCE   返回其参数中第一个非空表达式。


63.你是一个保险公司的数据库开发者。公司的地方办公室用XML文档传输他们的销售信息到公司的主要办公室。那XML文档被存储在SalesXML表中,这个表在一个SQL Server 2000数据库中。在XML文档中的数据包含保险代理人的名字,还有保险单拥有者的名字,保险单受益人的信息,保险政策的详细信息。你创建一些表来存放XML文档中的信息。你要把XML文档中的信息存入这些表中,你该做什么?
A 使用SELECT语句包含FOR xml AUTO 子句把数据从XML文档拷贝到适当的表中。
B 使用SELECT语句包含FOR xml EXPLICIT子句把数据从XML文档拷贝到适当的表中。
C. 使用OPENXML功能来访问数据并把它插入适当表中。
D 在SalesXML表中创建一个视图来显示XML文档中的内容。使用SELECT INTO语句来把视图中的数据插入适当的表中。
答案:C

64.你是一个保险公司的数据库开发者。你创建一个Insured表,包含在保险单上的人的信息。你用下面语句来创建这个表:

CREATE TABLE dbo.Insured (InsuredID int IDENTITY (1, 1) NOT NULL,PolicyID int NOT NULL,InsuredName char(30) NOT NULL,InsuredBirthDate datetime NOT NULL,CONSTRAINT PK_Insured PRIMARY KEY CLUSTERED(InsuredID),CONSTRAINT FK_Insured_Policy FOREIGN KEY(PolicyID) REFERENCES dbo.Policy(PolicyID ) )
一张保险单上的人以他们的名字和出生日期来单独识别。一张保险单上不只一个人。一个人不能超过一次的被放在同一张保险单上。你必需确保数据库正确运行保险单和保险单上的人的关系,你将怎么做?
A.增加PolicyID, InsuredName, and InsuredBirthDate 列为主键。
B.添加UNIQUE 约束来运行PolicyID,InsuredName, and InsuredBirthDate 列的组合的独特性。
C.添加一个CHECK 约束来运行PolicyID,InsuredName, andInsuredBirthDate 列的组合的独特性。
D.在PolicyID, InsuredName, and InsuredBirthDate 列上创建一个聚集索引。
答案:B

65.你正在为Tailspin Toys 设计一个数据库。你重新查看数据库设计,得到的结果显示如下:

你想要提高查询响应时间和最小化多余的数据。你应该怎么做?
A.创建一个命名为CustomerContact 的表,添加CustomerID,ContactName,Phone列到该表中。
B.创建一个新的复合的主键约束在OrderDetails表中,该主键约束包含OrderID,ProductID,CustomerID 列。
C.删除在表OrderDetails中的主键约束,使用一个唯一约束键来为OrderDetails表创建一个代理键。
D.删除OrderDetails表中的CustomerID列
E.删除OrderDetails表中的Quantity列,增加Quantity列到Orders表中.
答案: D.

66.你是一个汽车代理的数据库开发者。公司将他的汽车库存数据存放在一个 SQL Server 2000数据库中。在数据库中很多关键性的查询同时连接到分别命名为Make, Model, and Manufacturer.的三个表。这些表经常被更新。
你想要提高关键性的查询的响应时间。你该怎么做?
A.在各个表中创建一个索引查看。
B.创建一个存储过程,该存储过程从表中返回数据。
C.创建一个表量用户自定义函数,该函数返回表中的数据。
D.创建一个table-valued user-defined function,该函数返回表中的数据
答案: A.

67.你是一个保险公司的数据库开发者。公司有一个主要的办公室和18个地方的办公室。每个办公室有一个SQL Server 2000数据库。地方的办公室通过高速网络连接到总部办公室。
总部办公室数据库被用来联合从地方数据库的得到的信息。在总部办公室数据库中的表被水平地区分。地方办公室位置被用作总部办公室数据库主键的一部分。你正在设计物理复制模式,你该怎么做?
A.将主办公室的计算机配置为发布服务器。
B.将主办公室的计算机配置为发布者作为一个远程的分发者。
C.将主办公室的计算机是配置为中央发布者和地方办公室订阅者。
D.配置地方办公室的计算机为发布者而主办公室的计算机为中央订阅者。
答案: D.

68.你是一个服装零售商的数据库开发者。公司有一个命名为Sales的数据库。该数据库包含一个命名为库存的表。库存表包含销售中项目的列表和项目中可用的数量。当销售信息被插入到数据库,这个表被更新。更新存货表的存储过程显示如下:
CREATE PROCEDURE UpdateInventory @IntID intASBEGINDECLARE @Count intBEGIN TRANSELECT @Count = AvailableFROM Inventory WITH (HOLDLOCK)WHERE InventoryID = @IntIDIF (@Count > 0)UPDATE Inventory SET Available = @Count – 1WHERE InventoryID = @IntIDCOMMIT TRANEND
当这个存储过程执行,数据库服务器有时返回如下错误消息:
Transaction (Process ID 53) was deadlocked on {lock} resources with anotherprocess and has been chosen as the deadlock victim. Rerun the transaction.
你需要阻止该错误的发生当维护数据完整性的时候。你该怎么做?
A.删除表hint.
B.更改表hint.为UPDLOCK.
C.更改表hint为可重复读取
D.设置事务隔离级别为可串行读。(SERIALIZABLE.)
E.设置事务隔离级别为可重复读取。
答案: B.

69.你是Wide World Importers(公司名)数据库的开发者。公司跟踪它在一个SQL Server 2000
数据库中的定购信息。数据库包含两个表,这两个表中包含有订购的详细资料。这两个表分别命名为Order和LineItem.被用来创建这两个表的脚本显示如下:

CREATE TABLE dbo.Order
(
OrderID int NOT NULL,
CustomerID int NOT NULL,
OrderDate datetime NOT NULL,
CONSTRAINT DF_Order_OrderDate DEFAULT (getdate())FOR OrderDate,
CONSTRAINT PK_Order PRIMARY KEY CLUSTERED (OrderID)
)
CREATE TABLE dbo.LineITEM
(
ItemID int NOT NULL,
OrderID INT NOT NULL,
ProductID int NOT NULL,
Price money NOT NULL,
CONSTRAINT PK_LineITEM PRIMARY KEY CLUSTERED (ItemID),
CONSTRAINT FK_LineITEM_Order FOREIGN KEY (OrderID)
REFERENCES dbo.Order (OrderID)
)
公司的审计官已经发现每个在2000六月一日订购的条目都被添进一个比实际搞得价格---$10.你需要尽可能快的更正数据库中的数据。
问你需要使用下面哪个脚本语句?
A.     UPDATE l
SET Price = Price – 10
FROM LineItem AS l INNER JOIN [Order] AS o
ON l.OrderID = o.OrderID
WHERE o.OrderDate >= ‘6/1/2000’
AND o.OrderDate < ‘6/2/2000’
B.     UPDATE l
SET Price = Price – 10
FROM LineItem AS l INNER JOIN [Order] AS o
ON l.OrderID = o.OrderID
WHERE o.OrderDate = ‘6/1/2000’
C.     DECLARE @ItemID int
DECLARE items_cursor CURSOR FOR
SELECT l.ItemID
FROM LineItem AS l INNER JOIN [Order] AS o
ON l.OrderID = o.OrderID
WHERE o.OrderDate >= ‘6/1/2000’
AND o.OrderDate < ‘6/1/2000’
FOR UPDATE
OPEN items_cursor
FETCH NEXT FROM items_cursor INTO @ItemID
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE LineItem SET Price = Price – 10
WHERE CURRENT OF items_cursor
FETCH NEXT FROM items_cursor INTO @ItemID
END
CLOSE items_cursor
DEALLOCATE items_cursor
D.     DECLARE @OrderID int
DECLARE order_cursor CURSOR FOR
SELECT ordered FROM [Order]
WHERE OrderDate = ‘6/1/2000’
OPEN order_cursor
FETCH NEXT FROM order_cursor INTO @OrderID
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE LineItem SET Price = Price – 10
WHERE OrderID= @OrderID
FETCH NEXT FROM order_cursor INTO @OrderID
END
CLOSE order_cursor
DEALLOCATE order_cursor
答案: A.

70.你是一个书店数据库的开发者。每个月,你接收到从你的厂商以XML文档形式发送过来的新的提供信息。这个 XML文档显示如下:
xml Document
<ROOT>CategoryID= “2” CategoryName= “Videos”><Product ProductID= “80248” Description= “7 Minute Abs”></Product></Category><Category CategoryID= “3” CategoryName= “Computer Books”><Product ProductID= “12345” Description= “Inside SQL Server 2000”></Product></Category><Category CategoryID= “3” CategoryName= “Computer Books”><Product ProductID= “22345” Description= “Analysis Services with SQLServer 2000”></Product></Category><ROOT>

 

 

 

 

 

 

 

 

你正在设计一个存储过程来读取XML文档和将数据插入到一个命名为Products的表中。这个表被显示如下:

问下面哪个脚本语句应该被用来创建这个存储过程?
A.     CREATE PROCEDURE spAddCatalogItems (
@xmlDocument varchar (8000))
AS
BEGIN
DECLARE @docHandle int
EXEC sp_xml_preparedocument @docHandle OUTPUT, @xmlDocument
INSERT INTO Products
EXEC sp_xml_preparedocument @docHandle OUTPUT, @xmlDocument
INSERT INTO Products
SELECT * FROM
OPENXML (@docHandle, ‘/ROOT/Category/Product’, 1)
WITH Products
EXEC sp_xml_removedocument @docHandle
END
B.     CREATE PROCEDURE spAddCatalogItems (
@xmlDocument varchar (8000))
AS
BEGIN
DECLARE @docHandle int
EXEC sp_xml_preparedocument @docHandle OUTPUT, @xmlDocument
INSERT INTO Products
SELECT * FROM OPENXML (@docHandle, ‘/ROOT/Category/Product’, 1)
WITH (ProductID int ‘./@ProductID’,
CategoryID int ‘../@CategoryID’,
[Description] varchar (100) ‘./@Description’)
EXEC sp_xml_removedocument @docHandle
E

posted

你可能感兴趣的:(sql)