SQL_Server_2005题库1 下载本文

程序的用户将使用这个列表框找到客户帐户。该数据库包含超过50,000个客户帐户,因此,这个开发人员只想得到其中的25行作为列表框的用户名册。当前客户列表必须在任何时候都可以得到。你要给这位开发人员推荐实现该下拉列表框的方法。你应该给出什么建议? A、 建立一个储存进程来取得要加载到列表框中的所有数据。 B、 使用服务器边API指针取得要加载到列表框中的数据。

C、 使用SELECT 命令立即获得所有数据,然后将数据加载到列表框中。 D、 使用Transact-SQL 服务器边指针取得要加载到列表框中的数据。 答案: B、

________________________________________

74. 你是一家公司的数据库开发员,你正在创建一个数据库用来存储15所中学运动会的统计 信息, 这些信息将被50个公司用来在他们网站上发布运动会信息.每个公司的Web站点 用不同的格式排列和显示统计表.你需要把数据打包传送给这些公司, 你该怎么做 (A) A、 用包括FOR XML 子句的SELECT语句来提取数据

B、使用sp_makewebtask系统存储过程来产生由SELECT语句返回的数据的HTML文本 C、创建数据传输服务数据包来导出数据库的数据, 并把这些数据放到tab分隔的文本文 件中

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

75. 你是一家公司的数据库开发人员,你创建了两个事务来把员工的信息录入到公司的数据 库中.一个事务是用来把员工的名字和地址信息插入到数据库中, 这个事务是重要的. 另外一个事务把员工的统计信息插入到数据库, 这个事务不是最重要.数据库管理员通 知你数据库服务器在高使用率期间有时候会出错.每次这种情况发生时, 数据库服务器 就会随机中断其中一个事务.你必须确保当数据库服务器中断其中一个事务时, 它将不 会中断更重要的那个事务.你该怎么做 (B)

A、 为插入员工名字和地址信息的事务设置DEADLOCK_PRIORITY为LOW B、 为插入员工人口统计信息的事务设置DEADLOCK_PRIORITY为LOW

C、 添加条件代码来核对插入员工名字和地址信息事务的1205服务器错误, 如果遇到 这个错误, 重启这个事务

D、 在事务中的数据操纵SQL语句中添加ROWLOCK 最优化提示

76. 你是公司SQL Server 2005数据库的开发者.你更新了数据库里几个存储过程来创建新 的月终销售部门的报表.此存储过程包括综合查询从三个或者更多的数据表中检索数 据.所有数据库中的表至少有一个索引.用户反映新的月终报表比前一个版本的报表运 行速度慢很多.你想改善报表的性能.你该怎么做 (C)

A、创建一个脚本, 包括每个存储过程中的数据定义语言(Data Definition Language), 使用这个脚本作为索引调整向导(Index Tuning Wizard) 的工作量文件

B、 在SQL部署跟踪器中捕获每个存储过程的执行, 使用跟踪文件作为索引调整向导 (Index Tuning Wizard) 的工作量文件

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

D、 在SQL查询分析器中执行每个存储过程, 并使用Show Execution Plan选项 E. 在SQL查询分析器中执行每个存储过程, 并使用Show Server Trace选项

77. 你是一家进口商的数据库管理员, 你正在创建一个存储订单信息的数据库.订单将会在 一个client/server应用系统中录入, 每次一个新的订单录入时, 必须分配一个唯一的 订单编号, 订单编号必须以升序分配.每天平均有10000个订单被录入.你创建了一个 新的名为Orders的表,并在这个表里添加了一个OrderNumber列.接下来你该做什么 (B)

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

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

C、 设置这个列的数据类型为int,创建一个用户定义的方法来选择表中最大的订单编号 D、 设置这个列的数据类型为int, 创建一个NextKey表, 并被这个表添加一个NextOrder 列, 设置NextOrder列的数据类型为int, 创建一个存储过程来检索并更新NextKey 中的值

78. 你正在设计一个包含客户订单的数据库, 每次当客户给出一个订单时, 都能够定购多种 产品.你检查了如下所示的数据库设计:

你想提高查询响应速度和最小化冗余数据, 你该怎么做 ( 选择两个可行的解决方 法)(C)

A、 创建一个名为OrderDetail的新的订单表, 给这个表添加OrderID, ProductID和 Quantity列

B、给表Orders中的OrderID和ProductID列创建一个复合主键约束 C、 从Orders表中移除ProductID和Quantity列

D、 给Orders表的OrderID列创建一个UNIQUE约束 E. 把UnitPrice列从Products表移到Orders表

79.你是某出版公司的数据库开发人员,你创建了下面存储过程来汇报某本书从年初至今的 销售情况:

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)

你正在创建一个脚本来执行这个存储过程, 如果存储过程执行成功, 它就会汇报某本书 从年初至今的销售情况,如果存储过程执行失败,就会报告以下信息: \

你该如何创建这个脚本 (D) 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 =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 \'FROM (SELECT DISTINCT Country FROM Sales..Customers) ASc1, ' + (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

80.你正在为一个基于web的订票应用系统设计数据库.对任何一个事件都应当有500张或更多的票.应用系统的大部分用户在他们购买票之前会浏览少于50张的可订的票.然而, 一个用

户必须能够浏览可订票的整个列表.当用户浏览订票列表的时候, 列表需要更新来反映已经卖给其他用户的票.你需要为用户设计一个方法来浏览和购买可订的票.你该怎么做 (B) A、 使用一个卷动式静态游标来检索列表中的票, 使用游标定位更新来购买票 B、 使用一个卷动式动态游标来检索列表中的票, 使用游标定位更新来购买票 C、 使用一个存储过程来检索列表中的票, 使用另外一个存储过程来购买票 D、 使用用户定义的方法来检索列表中的票, 使用另外一个存储过程来购买票

81.你是一名数据库咨询顾问, 目前你被一家本地狗饲养场雇用来开发数据库.这个数据库将被使用来存储关于饲养者的狗的信息.你使用下面的脚本创建了一个名为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列都有有效的值.你想在保证最小化磁盘I/O的条件下执行这个规则.你该做什么 (C)

A、 在Dogs表上创建一个AFTER INSERT触发器, 使其回滚MotherID或FatherID列事务无效

B、 在MotherID和FatherID列上创建一个表级CHECK约束

C、 创建两个FOREIGN KEY约束: 一个在MotherID列, 一个在FatherID列; 指定每个约束引用DogID列

D、 创建一个规则并把它和MotherID列绑定, 把同样规则和FatherID列绑定

82.你是某电力公司的数据库开发人员, 当客户在声明的预定日期内没有支付帐单金额, 此金额就要每天增加1% 直到支付了为止, 存储过程如下所示:

每次存储过程执行没有错误, 它就会报告0个帐单超期.然而, 你发现金额正在被这个存储过程更新, 你该如何纠正这个问题 (D)

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行: DECLARE @Err int, @Count int

用下面的语句代替存储工程中的第9行:

SET Balance = Balance * 1.01, @Count = Count (*) 用下面的语句代替第15行: Return @Count

83.你是某在线电子公司数据库开发人员, 公司产品目录包含在一个名为Products的表中.Products表在正常工作时间经常被访问.对Products表的修改被写入PendingProductUpdate表中, 这些表如下所示:

PendingProductUpdate表下班后将用来更新Products表.数据库服务器运行SQL Server 2005并设置为8.0兼容模式.你需要创建一个脚本来更新Products表, 你该采用哪个脚本 (C) 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