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

2026/4/27 9:12:31

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

题意要求插入到订单表的销售记录中的EmployeeID,在Employee表中相应的IsActive列必须为当前被雇佣,使用触发器进行完整性检查。

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) + ?.?--STR函数将数值转换成为字符串类型

EXEC master. . xp_LOGEVENT 50001, @Msg --将用户定义消息记入 Microsoft? SQL Server? 日志文件和 Microsoft Windows NT? 事件查看器

END END

B. CREATE PROCEDURE UpdateStockPrice @StockID int, @Price decimal

AS BEGIN

UPDATE Stocks SET CurrentPrice = @Price WHERE StockID = @ StockID

29

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

本题要完成的任务有股票价格的更新信息要记入日志;在更新过程中发生错误要将错误记入日志;错误记入日志后,产生错误的信息必须返回给客户应用系统。 A错@@ROWCOUNT记录了if 语句之后的行数

B错要用raiserror来返回错误信息并记入到日志中,用print语句无法实现记入日志 C错没有显示错误信息,只是进行了错误的记入日志

30

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

答案:

原则:在事务中保持较短的执行单元;不要让未定的用户在事务中执行插入操作,一个事务也不能等待着用户的输入。

55.你是一个货车租借公司的数据库开发者。公司创建了一个web 网站使用户能预订货车。你设计SQL server 2000数据库来支持此web 网站。新的卡车预定租借信息被插入到Reservations表中。已预订了货车的用户能在网站更新他们的预订。当一个预订被更新,所有的预订信息必须复制到History表中。有时,用户将保存已有的预订,而该预订实际没被更新过。这时,现有的预订不必要复制到History表。你需求开发一种创建合适的项目方法 在History表中。你应该做什么?

A.在Reservations表中创建一个触发器来实现创建的History表。

B.在Reservations表中创建一个级联更新参照完整性约束到创建的History表项目中。

C.在Reservations表中创建一个视图。包含 WITH SCHEMABINDING 选项在视图定义中。 D.在Reservations表中创建一个视图。包含 WITH CHECK OPTION选项在视图定义中。

31

答案:A

B级联更新无法实现将一行数据拷贝到另一张表中

?56.你是一个Inc.Proseware的数据库开发者.公司有一个数据包含关于公司地理位置信息,这些信息中还包含了对应的邮政号码。此信息是包含在这个数据库里的公司表。当前数据库为五个不同的邮政号码包含了公司的数据。在一个特定的邮政号码范围内,公司的数量是10到5000。更多的公司和邮政号码将被加到数据库中。你创建一个查询从数据库中检索信息。你需要通过在数据库上进行最小限度改动来提供新的数据。你的查询性能不被要返回的公司数量所影响。你需要创建一个查询来完成一致地和最小限度的未来的维护。你应该怎么做? A.创建一个存储过程,要求一个邮政号码作为一个参数。包含 WITH RECOMPILE选项当过程被创建时。 B.为毎个邮政号码创建一个存储过程。 C.为毎个邮政号码创建一个视图。

D.将公司的表分为多个表以便于每个表包含一个邮政号码,在表中建立一个分割视图以至于在单一表上数据仍然可以查看

答案:A

创建存储过程时在其定义中指定 WITH RECOMPILE 选项,表明 SQL Server 将不对该存储过程计划进行高速缓存;该存储过程将在每次执行时都重新编译。当存储过程的参数值在各次执行间都有较大差异,导致每次均需创建不同的执行计划时,可使用 WITH RECOMPILE 选项。

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

32


SQL Server数据库程序设计认证试题.doc 将本文的Word文档下载到电脑
搜索更多关于: SQL Server数据库程序设计认证试题 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219