SQLServer习题按章节顺序讲解和练习_第1页
SQLServer习题按章节顺序讲解和练习_第2页
SQLServer习题按章节顺序讲解和练习_第3页
SQLServer习题按章节顺序讲解和练习_第4页
SQLServer习题按章节顺序讲解和练习_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SQL Server 2005习题1、(21)假设你正准备全新安装 SQL SERVER 2005服务器。你需要去选择服务器允许的通讯协议,以便客户端计算机可以使用这些协议连接到该服务器。请问,下面那两个协议可以达到这个目的? A. Named Pipes(命名管道) B. TCP/IP C. Shared Memory(共享内存) D. Virtual Interface Adapter (VIA) (虚拟接口适配器 (VIA) 协议) E. Multiprotocol解析:SQL Server支持的网络协议(1)Shared Memory协议:共享内存,用于检测故障(2)Named Pip

2、es协议:局域网(3)Tcp/Ip协议:Internet(4)VIA协议:虚拟接口适配器,必须和VIA网卡配合使用答案: A, B2、你配置一个采用默认设置全新安装的 SQL SERVER 2005 计算机使用 TCP/IP 协议。公司的安全策略也要求每个服务器都使用防火墙。你发现在本地计算机上可以连接到这个 SQL SERVER 实例,但是客户端计算机却不能连接到这个SQL SERVER 实例上。为了找到最有可能导致这个连接问题的原因,你首先应该做? A. 检查防火墙是否打开了1433端口。 B. 检查防火墙是否打开了433端口。 C. 检查客户端计算机是否用Shared Memory 协议

3、进行连接。 D. 检查服务器是否正在运行中。 解析:SQL SERVER默认的端口即为1433,一个IP地址可以有65536个端口,有很多是空的,还有一些则有固定的用途,例如:文件传输的默认端口是21.答案: A 3、公司A 有一个名为 SQL1的SQL Server 2005服务器。SQL1设置为SQL Server和Windows身份认证模式。使用 Windows认证,在SQL1 上你有 sysadmin权限。使用 SQL1 工作的所有用户都反映说:使用 SQL1的所有应用程序均停止响应。你的上司让你去调查此问题。在任务管理器中,你注意到 CPU使用率为100%。你试图用 SQL Serv

4、er Management Studio连接到SQL1。但 SQL1 没有响应。你需要连接到 SQL1 才能诊断问题。哪两种方法可能让你达成此目标?(每项正确的答案均代表一个完整的解决方案。选两项。) A. 用 osql实用工具连接到 SQL1。 B. 使用专用管理员连接的 sqlcmd实用工具连接到 SQL1。 C. 用SQL Server Management Studio连接到SQL1。打开一个查询窗口并执行以下语句: DBCC TRACEON 1244 D. 在 SQL Server Management Studio中,在工具栏上,点击数据库引擎查询以打开连接到数据库引擎对话框。在服

5、务器名称文本框内,敲入 ADMIN:SQL1。选择 SQL Server 身份认证并提供你的 sa身份。点击连接按钮。答案:B, D4、你是公司A 的数据库管理员。现在,你需要创建一个名为 Sales的新数据库。这个新数据库必须满足如下要求: 1) 数据文件大小为 10,000 MB; 2) 日志文件大小为 3,000 MB; 3) 数据文件和日志文件的“自动增长、文件最大尺寸”设置项都采用默认设置。 4) 事务日志必须被存储在可容错分区上。 5) 数据文件,事务日志文件,Windows应用必须被安装在不同磁盘分区上。 6) 数据库文件必须被存储在相应分区根下名为 SQL的文件夹中。 7) 数

6、据库应该被设置为自动截断事务日志。已知,你的服务器有效的磁盘分区如下: 有效磁盘分区RAID级剩余空间C:(Windows Volume)RAID 120GBD:RAID 120GBE:RAID 020GB你为了按照上面条件创建出 Sales数据库,你应该如何设置新数据库对话框的参数值?解析:RAID 0:无差错控制的带区组 RAID 1:镜象结构5、你的SQL Server 2005数据库包含一个有 500,000,000行数据的表。其中,一些是历史数据,一些是当前的数据。你需要在一个服务器上对数据进行分区,以提高性能和优化管理。你应该怎么做? A. 进行水平分区。 B. 进行垂直分区。 C

7、. 进行原始分区。(raw partition)。 D. 进行分布式分区(distributed partitioning)。解析:P108 根据某个特定列中的一系列值进行水平分区。答案: A6、(5)你的部门负责从SQL Server 2005 数据库中的数据创建客户电子邮件地址列表。此列表必须包含上次联系每个客户的日期。结果集中的数据必须有列名。列表必须以上次联系客户的日期排序,最近联系的人排在前边。LastContact 列以 datetime 类型存储。日期应以MM/DD/YYYY 的形式显示。一位同事设计了以下查询: SELECT email_address AS EmailAddr

8、ess, CONVERT(nvarchar, lastcontat, 101) AS LastContact FROM Contact ORDER BY LastContact DESC.你测试了此查询,并发现数据按如下顺序显示:EmailAddress LastContact andrew 01/24/2003 marc 06/12/2005 stefan 07/13/2004 你需要修改此查询以使数据按正确的顺序排列。你想要对性能不造成任何负面影响而达成此目标,该怎样做? A. 按如下修改ORDER BY 语句:ORDER BY CONVERT(nvarchar, lastcontact,

9、 101) DESC B. 从LastContact列中删除列别名。 C. 按如下修改ORDER BY 语句:ORDER BY CAST(lastcontact AS nvarchar(20) DESC D. 改变LastContact列的别名 解析:两种方法:order by convert(datetime,lastcontact,101) desc order by lastcontactlastcontact是表中的列表,LastContact是为列取的别名,以后者为依据进行降序排,实际上是以字符串类型进行排序,因为已经将其强制类型转换为nvarchar型答案:D7、(35)你是公司A

10、在北京总部SQL SERVER 2005数据库的管理员.销售部门需要一个包含了上个季度北京总部和天津分公司客户活动信息对比的报表,并且数据需要按照surname 和 first name进行排序.恰好,在你的服务器上有一个天津分部数据库最近的备份,为此,你可以通过写一个查询来实现这个报表,并且对数据按照Surname 和FirstName列进行排序。可是你发现天津分部客户数据是按照不同的方式进行排序的;销售部门需要在15分钟内进行数据展示。为此,你需要以最快的解决方案得到已排序的数据并确保来源于两个数据库数据排序方式是一致的。你应该如何做? A. 使用复制数据库向导把天津分部的数据复制到一个新

11、的数据库中,并且在复制过程中指定和北京总部数据同样的排序规则。 B. 使用数据导入导出向导导出天津分部的数据到一个新的表中,并且在导出过程中指定和北京总部数据同样的排序规则。 C. 修改数据格式文件使其和北京总部数据采用同样的排序规则,然后在导入数据。 D. 修改查询天津分部数据的SQL语句,使其在ORDER BY子句中使用COLLATE 子句并指定和北京总部数据同样的排序规则。 解析:COLLATE:一个子句,可应用于数据库定义或列定义以定义排序规则,或应用于字符串表达式以应用排序规则转换。答案: D8、(36)你工作在一个售书公司.你正在基于SQL SERVER 2005数据库创建一个报表

12、。此报表显示本月超过销售配额的销售代表及他们的销售额 。已知,销售配额为$2,000。查询的起始日期和截至日期以变量FromDate 和 ToDate 传递进来。为了实现满足上述条件的报表,你应该使用下面那一个SQL查询语句? A. SELECT s.AgentName, SUM(ISNULL(o.OrderTotal,0.00)AS SumOrderTotal FROM SalesAgent s inner JOIN OrderHeader o ON s.AgentID = o.AgentIDWHERE o.OrderDate BETWEEN FromDate AND ToDate GROU

13、P BY s.AgentName B. SELECT s.AgentName, SUM(ISNULL (o.OrderTotal,0.00)AS SumOrderTotal FROM SalesAgent s JOIN OrderHeader o ON s.AgentID = o.AgentIDWHERE o.OrderDate BETWEEN FromDate AND ToDate AND o.OrderTotal = 2000 GROUP BY s.AgentName C. SELECT s.AgentName, SUM(ISNULL (o.OrderTotal,0.00) AS SumO

14、rderTotal FROM SalesAgent s JOIN OrderHeader o ON s.AgentID = o.AgentID WHERE o.OrderDate BETWEEN FromDate AND ToDateGROUP BY s.AgentName HAVING SUM(o.OrderTotal) = 2000 D. SELECT s.AgentName, SUM(ISNULL(o.OrderTotal,0.00) AS SumOrderTotal FROM SalesAgent s JOIN OrderHeader o ON s.AgentID = o.AgentI

15、DWHERE o.ordertotal = 2000 AND o.OrderDate BETWEEN FromDate AND ToDate GROUP BY s.AgentName HAVING SUM(o.OrderTotal) = 2000 解析:P82 ISNULL函数:isnull(表达式1,表达式2)如果表达式1为空,则返回表达式2,否则返回表达式1,上述题目中的ISNULL(o.OrderTotal,0.00)是判断销售额是否为空答案: C9、(16)你是公司A 的数据库管理员。你需要创建一个维护计划去重建 DB1 数据库的索引。 要求: 1) 新建索引时填充因子必须为 90,而

16、且填充因子必须被应用到索引的叶子级和索引平衡树。 2) 当维护计划在运行时,所有表必须是可查询的。 请问,你该如何设置维护计划向导中“定义重新生成索引”任务页的选项?10、(24)公司A 使用 SQL Server 2005. 有用户反馈说报表执行缓慢。你经过调查后发现一些查询并没有选择使用最优的执行计划,同时你也注意到一些优化器统计数据并没有被使用并且另一些也过期了。现在,需要去改正这个问题让报表执行更快,你将会使用下面那两个SQL语句? A. DBCC CHECKTABLE B. ALTER INDEX REORGANIZE C. UPDATE STATISTICS D. CREATE S

17、TATISTICS E. DBCC SHOW_STATISTICS F. DBCC UPDATEUSAGE解析:P498 DBCC CHECKTABLE:检查组成表或索引视图的所有页和结构的完整性。DBCC UPDATEUSAGE:报告目录视图中的页数和行数错误并进行更正。从 SQL Server 2000 进行的数据库升级可能包含无效的计数。建议在升级之后运行 DBCC UPDATEUSAGE,以便更正所有的无效计数。答案: C, D11、(45)你负责管理一个SQL SERVER 2005 数据库。它包含一个有很多索引的表。随着时间的流逝,你发现对这个表进行数据修改时的性能越来越差。你怀疑

18、可能是一些无用索引造成的。为此,需要找到自从最后一次 SQL Server 2005 启动以来那些索引是没有被任何查询使用过。你应该使用下面哪一个动态试图? A. sys.dm_fts_index_population B. sys.dm_exec_query_stats C. sys.dm_db_index_usage_stats D. sys.dm_db_index_physical_stats 解析P467 习题13.6 第五题同P446 表13-1A.返回有关当前正在进行的全文索引填充的信息。B. 返回缓存查询计划的聚合性能统计信息。缓存计划中的每个查询语句在该视图中对应一行,并且行的

19、生存期与计划本身相关联。在从缓存删除计划时,也将从该视图中删除对应行。C. 返回不同类型索引操作的计数以及上次执行每种操作的时间。D. 返回指定表或视图的数据和索引的大小和碎片信息。对于索引,针对每个分区中的 B 树的每个级别,返回与其对应的一行。对于堆,针对每个分区的 IN_ROW_DATA 分配单元,返回与其对应的一行。对于大型对象 (LOB) 数据,针对每个分区的 LOB_DATA 分配单元返回与其对应的一行。如果表中存在行溢出数据,则针对每个分区中的 ROW_OVERFLOW_DATA 分配单元,返回与其对应的一行。答案: C12、(47)你正在使用SQL SERVER 2005 服务

20、器SQL1 上的一个名为 DB1的数据库。DB1 7X24 小时不间断运行。 DB1最近的一个副本保存在名为 SQLtest 的服务器上, SQLtest 同时也在运行着 SQL SERVER 2005.你发觉在 SQL1 上的查询存在着大量的对表完全扫描,为此你得出结论 DB1 数据库需要额外的索引。目前已经有适合 DTA(Database Engine Tuning Advisor:数据库引擎优化顾问)的工作负荷文件,你需要做的是利用 DTA 对工作负荷文件进行分析。在分析的过程中,你必须要保证 SQL1 服务器良好的工作性能,而且要保证 DTA 推荐的建议是有效的。你应该如何实现这个目标

21、? 把工作负荷文件保存在SQL1上。在SQLTest上启动DTA并连接到SQL1上,然后选上所有的优化选项并且在高级选项对话框中选中“仅生成联机建议”,然后启动分析。B. 把工作负荷文件存储在 SQLtest上。在SQLTest上启动DTA并连接到SQLTest上,然后选上所有的优化选项并且在高级选项对话框中选中“仅生成联机建议”,然后启动分析。 C. 把工作负荷文件保存在SQL1上。在SQL1上启动DTA并连接到SQL1上,然后选上所有的优化选项并且在高级选项对话框中选中“所有建议均为脱机建议”,然后启动分析。 D. 把工作负荷文件存储在 SQLtest上。在SQLTest上启动DTA并连接

22、到SQLTest上,然后选上所有的优化选项并且在高级选项对话框中选中“所有建议均为脱机建议”,然后启动分析。解析:因为“SQL1 服务器良好的工作性能”,所以“只能将工作负荷文件存储在 SQLtest上”答案: B13、(49)你是公司A 北京分公司的DBA。公司使用的是 SQL SERVER 2005 数据库,它不包含任何视图。你要用数据库引擎优化顾问(DTA)去优化这个数据库。适合的工作负荷文件已经存在了。现在,你只需要找到目前缺少的非聚集索引。在整个处理的过程中,你需要保证现有的物理架构完好,并且优化建议对于分区数据有最好的性能。为了达到这个目标,你应该如何配置DTA 选项?解析:答:非

23、聚集索引,完全分区,保留所有现有PDS14、(50)你在为一家银行工作。这家银行使用SQL SERVER 2005 数据库存储客户的在线交易数据。已知,银行每天处理大约 50,000 次交易。应用系统必须要求在列 TransactionID 上有一个聚集索引。现在,你要为交易创建一个表,它能高效的支持按日期进行交易报表的查询。请问,下面那两种方法可以达到这个目的? A. 以日期列创建一个非聚集索引。 B. 以日期列创建唯一聚集索引。 C. 映射每一个数据分区到一个文件组上,每一文件组放置在不同的物理磁盘上。 D. 创建一个以日期进行分区的分区方案。 解析:P193 一张表只能创建一个聚集所以答

24、案: A,D15、(55)公司 A 的网站包含一个客户用来提交公司和公司产品信息反馈的页面。你用 SQL SERVER 2005 数据库中Feedback 表中的列 Comments去存储反馈信息。你需要在列 Comments 上执行全文搜索从而创建报表。下面那两步你是必须要做的?(请选择两项) A. 在Comments 列创建一个非聚集索引。 B. 执行USE Master Transact-SQL 语句。 C. 创建全文目录。. D. 在列 Comments 上创建全文索引。 解析:P213 实际上课本目录已经说明,进行全文搜索必须做的两件是:全文目录和全文索引答案: C,D16、(65)

25、你正在SQL SERVER 2005服务器上一个名为DB1的数据库上进行着工作。你发现由于对DB1中Table1表的扫描导致了查询执行缓慢。已知,Table是一个使用频繁而且非常巨大的表,同时你又确定了查询中包含如下的语句:SELECT col1,col2 FROM table1 WHERE col3 = 。在表保持对所有用户有效的情况下,为了最大化的提高查询性能,你应该怎么做? A. 更新DB1数据库中表Table1的所有统计信息。 B. 在DB1数据库中,使用CREATE STATISTICS 语句为表Table1的列col3创建缺少的统计信息。 C. 设置优先值提升选项的值为1。 D.

26、执行如下语句:USE DB1 GO CREATE INDEX index1 ON table1(col3) INCLUDE(col1, col2) WITH (ONLINE = ON) GO E. 执行如下语句 USE DB1GOCREATE INDEX index1 ON table1(col3, col2,col1) 解析:P202 创建索引的场合;创建复合索引的准则有两个好处,同时查询只对col3进行,因此col2和col1可不直接放入索引中还是包含其中;P199 ONLINE=ON表示在创建索引时,允许对表数据进行修改,当事务结束时,再将事务影响的记录应用到索引上。答案: D17、(7

27、5)你发现SQL Server 2005 数据库中sales表的所有索引的碎片都很严重。现在,你要将sales表全部索引的碎片减到最小,同时却不影响任何用户使用 sales表。该怎样做? A. 对包含销售表的磁盘进行碎片整理。 B. 执行以下语句:USE master; GO DBCC CLEAN TABLE (DB1 . sales);GO C. 执 行 以 下 语 句 :USE DB1;GO ALTER INDEX ALL ON sales REORGANIZE WITH (LOB_COMPACTION=ON);GO D. 执行以下语句:USE DB1;GO ALTER INDEX ALL

28、 ON sales REBUILD;GO 解析:P212 重新组织索引来整理索引磁片;LOB_COMPACTIONON:指定压缩所有包含大型对象 (LOB) 数据的页。LOB 数据类型包括 image、text、ntext、varchar(max)、nvarchar(max)、varbinary(max) 和 xml。压缩此数据可以改善磁盘空间使用情况。默认值为 ON。答案:C18、(1)你打算从SQL Server 2000 数据库的客户表和国别表中导入客户数据到SQL Server 2005 数据库中。你要确保在导入过程中,客户表中国家代码列的每个值在SQL Server 2005数据库中

29、国别表内都有其相应的纪录。你在两个表之间定义一外键,这样,参照完整性将保证若国家代码值在客户表中存在,而在国别表中不存在时导入程序失败。你要确保国别表无记录时导入过程不失败,该怎么做? A. 删除外键,用脚本导入数据,重新创建外键。 B. 创建一个CHECK约束。 C. 创建一个DML INSTEAD OF触发器,将错误记录写入文件或表中。 D. 创建一个DML AFTER触发器,将错误纪录写入文件或表中。 解析:P248 允许你编写逻辑代码以拒绝执行批处理的某些部分,同时不影响批处理其他部分的成功执行instead of触发器代替原始触发操作执行。after触发器在执行insert、upda

30、te或delete语句的操作之后执行。答案:C19、(3)公司A 使用SQL Server 2005 数据库。来自贸易伙伴的客户数据每天晚上都要导入到客户表。你要确保,在导入的过程中,对于存在的客户数据进行更新、对于不存在的客户数据进行插入。你该怎么做? A. 创建一个FOR触发器。 B. 创建一个INSTEAD OF 触发器。 C. 创建一个 AFTER 触发器。 D. 创建一个 DDL 触发器。 答案:B解析:P248 允许你编写逻辑代码以拒绝执行批处理的某些部分,同时不影响批处理其他部分的成功执行。说明可通过此触发器同时做多件不同的事20、(15)你是公司 A 的数据库管理员。在数据库服

31、务器上只有一个非系统数据库 MyCrmDB。公司新的安全策略要求:在数据库服务器上不允许执行嵌套触发器。为此,你如何确认你的数据库服务器是否满足新安全策略的要求。 21、(51)公司A 使用SQL SERVER 2005数据库。数据库包含一个名为trg_InsertOrders 的触发器,这个触发器在订单数据插入到订单表的时候触发。trg_InsertOrders 触发器主要是负责在插入订单数据的时候检查相应的客户在客户表中存在。现在,你需要配置这个触发器,使他在导入数据的过程中不被触发。现要求你用最便捷的方法达到这个目标,你应该选择下面那两个方法?(请选择两个答案) A. ALTER TAB

32、LE OrdersDISABLE TRIGGER trg_InsertOrders B. DROP TRIGGER trg_InsertOrders C. DISABLE TRIGGER trg_InsertOrders ON Orders D. ALTER TRIGGER trg_InsertOrders ON Orders NOT FOR REPLICATION E. sp_settriggerordertriggername= trg_InsertOrders, order=None 解析:在有些情况下,用户希望暂停触发器的作用,但并不删除它,这是就可以通过DISABLE TRIGGER

33、语句是触发器无效使触发器有效:ENABLE TRIGGER答案: A,C22、(54)你正在修改SQL SERVER 2005 数据库中的Product 表。你想去为它增加一个存储产品友好名称的列 FriendlyName。已知 Product 表已经包含有数据,并且 FriendlyName 列要求是一个非空列,然而销售部门并没有为每个产品都提供了友好名称。如果你想用最快、最少的工作完成增加新列,你应该如何做? A.定义一个可以为空的新列FriendlyName,然后更新列FriendlyName的数据为某个值,最后修改FriendlyName列为 NOT NULL 。 B. 定义一个不可为

34、空、缺省值为Undefined.的新列FriendlyName。 C. 定义一个可以为空的新列FriendlyName。然后在应用逻辑中实现数据不可为空的约束。 D. 定义一个可为空、缺省值为 Undefined. 的新列FriendlyName。 解析:P230默认约束使用场合答案: B23、(67)你在负责管理用于订单应用的SQL SERVER 2005数据库的方案。在你完成一个视图设计以后,一位开发人员要求你为 Product 表增加一新的列 CommissionRate(佣金百分比)。已知,目前所有产品的佣金百分比是未知的,但是每个产品默认的佣金百分比为 12%。这个比率是能够被修改的

35、。因此,在你增加一个新的列后,你需要配置 Product 表以最有效的方式为新列指定默认值,你应该怎怎么做? A. 创建一个INSERT触发器去设置表中每一项的默认值。 B. 创建一个CHECK约束去验证数据,并设置表中每一项的默认值。 C. 创建一个UPDATE触发器去更新表中每一项的默认值。 D. 创建一个DEFAULT约束,利用WITH VALUES子句设置默认值。 解析:P231答案: D24、(2)你正在使用一个SQL Server 2005 数据库,它包含一个名为 Customers 的表。其中Customers表包含如下的列定义: 列名类型CustomerIDIntCompany

36、NameVarchar(50)FirstNameVarchar(20)LastNameVarchar_(20)PictureVarbinary(max)Address1Varchar(30)Address2Varchar(30)CityVarchar(30)StateProvinceChar(2)PostalCodeVarchar(10)CountryCodeChar(2)你使用以下Transact-SQL语句创建一个名为v_Customer的视图。 CREATE VIEW v_Customer AS SELECT CustomerID, CompanyName, FirstName, Las

37、tName, Picture FROM Customers。 你想要在v_ Customer 视图中创建一索引。在创建索引前,还需要修改此 Transact-SQL语句。应采取以下哪两项举措?(每项正确答案代表方案的一部分。选两项。)A. 将Picture列改为 image数据类型。 B. 表名包含模式名。 C. 包含WITH SCHEMABINDING 语句 D. 在 Select语句中用*符号选择所有的列 解析:P273 创建索引视图存在多种相关要求和限制,主要包括:。必须使用SCHEMABINDING选项,即架构绑定;视图中所引用的表和函数必须通过两段式名称引用,即模式名(架构名)答案:

38、B, C25、(4)你需要在SQL Server 2005 数据库中创建一个连接客户表与订单表的视图。同时要确保底层数据表方案的更改不会影响到视图。你想要以可能的最小开销量达成此目标,你要怎样做? A. 在数据表中创建 CHECK 约束 B. 创建一个DDL 触发器,若改动对视图中的列产生了影响,它将回滚到更改之前的数据表。 C. 创建视图时指定 WITH SCHEMABINDING 选项。 D. 创建视图时指定 WITH CHECK 选项。 解析:答案:CP263 创建视图的最佳实践指定了 SCHEMABINDING,则不能以可影响视图定义的方式来修改基表。必须首先修改或删除视图定义本身,然

39、后才能删除要修改的表的相关性。使用 SCHEMABINDING 时,select_statement 必须包含所引用的表、视图或用户定义函数的两部分名称(schema.object)。所有被引用对象都必须在同一个数据库内。不能删除参与使用 SCHEMABINDING 子句创建的视图的表或视图,除非该视图已被删除或更改,而不再具有架构绑定。答案:C26、(52)你正在SQL SERVER 2005 数据库中创建一个连接 Customers 和 Orders 表的视图。你需要确信不能按照将影响视图定义的方式修改基表或表。为了达到这个目标,最简单且节省管理成本的方法应该是? A. 在表上创建一个 C

40、HECK 约束。 B. 在表上创建一个DDL触发器,如果对表的修改影响了视图定义则回滚任何对表的改变。 C. 在创建视图的时候,指定WITH SCHEMABINDING 选项。 D. 在创建视图的时候,指定WITH CHECK 选项。 解析:P263 创建视图的最佳实践联机帮助:不能删除参与到使用 SCHEMABINDING 子句创建的视图中的视图、表或函数,除非该视图已被删除或更改而不再具有架构绑定。另外,如果对参与具有架构绑定的视图的表执行 ALTER TABLE 语句,而这些语句又会影响该视图的定义,则这些语句将会失败。答案: C27、(58)你正在负责管理公司一个SQL SERVER

41、2005数据库。公司使用一个连接客户和销售表的视图v_CustomerSales 进行例行的业务分析。他们用这个视图按月按客户进行销售数据汇总。为了提高视图的性能,你应该怎么做? A. 修改视图,在表Customers 和 Sales之间采用外连接(outer join)。 B. 为视图v_CustomerSales新建一个聚集索引。 C. 为Customers表和Sales表分别创建v_Customers和v_Sales视图。在每个视图中不包含任何的连接关系。 D. 用v_CustomerSales 视图创建一个存储过程来进行业务分析。 解析:P272 索引视图可以改善性能,且对视图创建的第

42、一个索引必须是唯一聚集索引。答案: B28、(59)公司A 使用SQL SERVER 2005数据库。你正在实现一系列用在ad hoc查询(即席查询)的视图。这些视图用来增强公司 A 数据访问的安全性。可是,其中的某些视图查询数据缓慢,为此,在你进行公司安全策略维护的时候,想给这些视图创建一些索引,以提高性能。其中,有一个视图并不允许你创建索引。已知,这个视图使用了 GETDATE()函数返回当前日期作为视图的一列。请问,为了在这个视图上能够创建索引,你应该如何做?(选择两个答案) A. 移除视图中所有对确定性函数的调用。 B. 移除视图中所有对非确定性函数的调用。C. 对视图中使用的所有函数

43、进行架构绑定。 D. 在创建视图的时候指定WITH CHECK OPTION 子句。 解析:P273 创建索引视图存在多种相关要求和限制,其中两条:1.视图必须是使用SCHEMABINDING选项定义的,架构绑定将视图与底层基表的架构进行绑定;2.视图中的表达式所引用的函数必须是确定性的;(此处的GETDATE函数就不确定,需根据具体时间定)答案: B,C29、(37)你正在SQL SERVER 2005 数据库中创建一个从联系人表删除联系人数据的存储过程。在存储过程中包含如下的语句来处理可能发生的任何错误。 BEGIN TRY BEGIN TRANSACTION DELETE FROM Pe

44、rson.Contact WHERE ContactID = ContactID COMMIT TRANSACTION END TRY BEGIN CATCH DECLARE ErrorMessage nvarchar(2000) DECLARE ErrorSeverity int DECLARE ErrorState int SELECT ErrorMessage=ERROR_MESSAGE(),ErrorSeverity= RROR_SEVERITY(), ErrorState = ERROR_STATE() RAISERROR (ErrorMessage,ErrorSeverity, E

45、rrorState) END CATCH; 在你执行存储过程后发现,事务仍然保持打开状态。为了正确的处理打开的事务,你应该如何修改你的存储过程? A. 在CATCH语句块增加 COMMIT TRANSACTION 命令。 B. 在TRY语句块移除COMMIT TRANSACTION 命令。 C. 在CATCH块增加 ROLLBACK TRANSACTION命令。 D. 在TRY块增加ROLLBACK TRANSACTION 命令。 解析:P299-300 在处理错误内容中使用事务答案: C30、(53)你正在为一个抵押公司创建一个 SQL Server 2005 数据库。数据库将用来支持一个新

46、的能支持1000 个并发用户的 Web 应用。这个应用必须快速的显示精确计算的结果,例如:抵押支出能力、分期偿付方案等。你需要确保数据库处理速度尽可能的快,你应该怎么做? A. 在应用中执行参数化的SQL 查询。 B. 在数据库执行SQL存储过程。 C. 在数据库中执行 CLR 存储过程。 D.利用分布式 Web services实现。 解析:P282 CLR存储过程比T-SQL存储过程更健壮、更优秀,性能更高。答案: C31、(66)表名称存储surname名以下面所列字符作为起始字母的客户信息Customer1A-H(客户surname名以字母A到H开头)Customer2I-PCusto

47、mer3Q-Z 图(47) 公司A的客户数据以独立的3个表存储在SQL SERVER 2005 数据仓库中,每个表被用来对数据进行水平分区。 在把数据从SQL SERVER 2000数据库整合到SQL Server 2005数据仓库的时候,按照上面图示(图47)把数据分区到3个独立的表中。现在,你需要在每一个客户表中增加一个新列OptOutFlag。而且你要保证这个列要么同时被增加到3个客户表中,要么3个都不增加。并且也要保证数据库总是在一致的状态下。你应该使用下面那个一个批处理命令? A. BEGIN TRAN_ ALTER TABLE TESTKING1 ADD OptOutFlag BI

48、T NULLALTER TABLE TESTKING2 ADD OptOutFlag BIT NULLALTER TABLE TESTKING3 ADD OptOutFlag BIT NULLIF error 0ROLLBACK TRANELSECOMMIT TRA B. BEGIN TRAN BEGIN TRY ALTER TABLE TESTKING1 ADD OptOutFlag BIT NUALTER TABLE TESTKING2 ADD OptOutFlag BIT NUALTER TABLE TESTKING3 ADD OptOutFlag BIT NUEND TRY_ BEGI

49、N CATCH_ ROLLBACK TRAN RETURN END CATCH COMMIT TRAN C. ALTER TABLE TESTKING1 ADD OptOutFlag BIT NULL ALTER TABLE TESTKING2 ADD OptOutFlag BIT NULL ALTER TABLE TESTKING3 ADD OptOutFlag BIT NULLD. BEGIN TRAN ALTER TABLE TESTKING1 ADD OptOutFlag BIT NULLALTER TABLE TESTKING2 ADD OptOutFlag BIT NULLALTE

50、R TABLE TESTKING3 ADD OptOutFlag BIT NULLCOMMIT TRAN 解析:P297 结构化错误处理是使用TRYCATCH块实现的,TRY块包含可能失败的事务性代码,CATCH块包含当TRY块中发生错误时所执行的代码。答案: B 32、(68)公司A 有一个SQL SERVER 2005 数据库服务器。你被指派了一个任务是去得到当前已登录数据库的用户的信息。为此,你需要去创建一个返回指定用户活动时长的函数,请问,下面那两个方法能达到这个目的? A.创建一个返回值列表的函数,它返回给定用户的登录时间值。 B. 创建一个返回值列表的函数,它返回返回超过当前用户登

51、录时长的那些用户的登录小时数。 C.创建一个返回指定用户当天登录小时数的函数。 D.创建一个返回指定用户当月登录小时数的函数。 答案: C,D33、(69)你正在基于一个为客户提供银行信息的 SQL SERVER 2005 数据库进行着工作。你想让客户看到银行报表。已知,这个报表的数据是由数据库中提取的数据和从一个第三方的 Web Service获得的实时投资数据组合而成。要求,当报表执行的时候获得的投资信息必须是当前的,为此,你需要在数据库中创建合适的对象去支持这个报表,你应该怎么做? A. 使用FOR XML AUTO 子句发布数据库数据为XML Web service。 B. 为每个客户

52、创建一个存储银行信息的表。然后为表创建一个Inserted触发器,在触发器被激活时通过Web Service获得相应数据一并插入表中。 C. 创建一个SQL存储过程,它用临时表存储每个客户的银行信息。然后用Web Service的值更新这个表的值。 D. 让开发人员创建一个调用Web Service的类库。然后用这个类库创建一个CLR函数。调用CLR函数并和数据库中的银行信息进行合并后得出结果。 答案: D解析:P282T-SQL只可以访问数据库的资源。为了访问外部系统资源,使用CLR微软发布了公共语言运行库(CLR),允许开发人员和DBA能够利用SQL Server之外的托管代码。CLR为那

53、些懂的.net开发语言,但是不懂的T-SQL语言的人,提供了一种实现方式。使用CLR,可以直接在SQL Server中创建存储过程、触发器,用户自定义函数,集合体和类型等等34、(9)你要创建一个SQL Server 2005应用程序来存储和管理法律文件。原文件以XML文档存于一文件服务器上。此应用程序用于将文件插入到数据库。此后,这些文档必须能够从数据库中得到,并与原文件保持一致。你要设计一个表去存储这些文档数据,该怎样做?A. 将XML文档存于以nvarchar(max)为数据类型的一列中。 B. 分割此XML文档并将其存储于在一个关系结构中。 C. 将XML文档存于以XML为数据类型的一

54、列中。 D. 将XML文档存于以varchar(8000)为数据类型的一列中。 解析:P311 将XML文件直接加入数据库的列中时,需将该列数据类型设置为nvarchar,长度设为MAX而XML数据类型可用于在表,变量或参数中存储XML文档和片断,与text或varchar字段进行存储相比,XML数据类型具有更多的优点,如可使用可扩展查询语言(XQuery)以及修改或检索XML数据中的特定元素或属性等 P329答案:A35、(12)你正在写一个查询,从 SQL Server 2005数据库表中返回数据。一些数据存储在关系列中,一些存储在 XML 数据类型列中。你的查询需要返回一个关系结果集,其

55、中包含关系域中的数据以及XML数据类型列的属性值。你应该使用 XML 数据类型的哪两个方法?(每一个正确的答案代表方案的一部分。选两项。) A. the value()方法。 B. the exist()方法。 C. the query()方法。 D. the nodes()方法。 E. the modify()方法。 解析:P336337 举例10-19答案:A, D36、(38)你正在创建一个把公司产品信息显示在公司网站上的在线应用.已知,产品数据以关系数据的存储方式存储在 SQL SERVER 2005数据库中。但是你的应用要求使用 FOR XML查询语句把关系数据转换为XML文档数据后

56、进行使用.后来,在你测试你的应用程序的时候却发现,并不是所有查询到的数据都出现在 XML 文档中,相反只有方案中所有元素都有值的那些产品数据才出现在 XML 文档中,为了在 XML 数据中包含你所有查询到的数据,你应该如何修改你的SQL查询?A. 为包含产品数据的表增加一个XML索引。 B. 在查询语句ELEMENTS选项中增加 XSINIL参数。 C. 给查询语句增加一个 HAVING 子句。 D. 给查询子句增加可替换的值。 解析:P313 查询帮助文档,ELEMENTS 指令将构造 XML,其中每个列值映射到 XML 中的一个元素。如果列值为 NULL,则不添加元素。通过对 ELEMEN

57、TS 指令指定可选的 XSINIL 参数,可以请求创建 NULL 值对应的元素。在这种情况下,将为每个 NULL 列值返回一个元素,其 xsinil 属性被设置为 TRUE答案: B37、(17)你是公司A 的数据库管理员。你需要移动数据库 DB1 到一个不同的SQL SERVER 辅助数据库服务器上。为此,你必须对数据库至上一次事务日志备份以来所有的改变进行备份。而且,你也必须保证在数据备份完成后数据库不能进行任何改变。已知:备份文件名称必须为DB1.bak,并且要求放在 D:Bak文件夹下。请问,如何设置备份对话框的各参数值? 答案:38、(26)你发现在装有SQL SERVER 2005

58、 计算机上的msdb 数据库被损坏并且必须被恢复才能正常使用。数据库每天都进行了备份,备份文件位于一个网络共享位置上,但是每个备份文件的文件名称都不能明确的指出是那个数据库的备份文件。你需要最快的找到正确的备份文件。已知备份文件列表的第一个文件的名称为DB_Backup.bak;你应该使用下面那一个SQL语句? A. RESTORE LABELONLYFROM DISK = NServer1BackupDB_Backup.bak B. RESTORE HEADERONLYFROM DISK = NServer1BackupDB_Backup.bak C. RESTORE VERIFYONLYF

59、ROM DISK = NServer1BackupDB_Backup.bak D. RESTORE DATABASE MSDBFROM DISK = NServer1BackupDB_Backup.bak 解析:RESTORE LABELONLY:返回一个结果集,该结果集包含由给定备份设备标识的备份媒体的有关信息。执行 RESTORE LABELONLY 是找出备份媒体所含内容的快速方法。RESTORE LABELONLY 只读取媒体首部,因此即使在使用高容量磁带设备时该语句也执行得很快。RESTORE HEADERONLY:返回包含特定备份设备上所有备份集的所有备份标头信息的结果集。会查看媒

60、体上的所有备份集。因此,使用高容量磁带机时,生成此结果集可能需要一些时间。若要快速查看媒体而不获取有关每个备份集的信息,请使用 RESTORE LABELONLY 或指定 FILE =backup_set_file_number。RESTORE VERIFYONLY:验证备份但不还原备份,检查备份集是否完整以及整个备份是否可读。但是,RESTORE VERIFYONLY 不尝试验证备份卷中的数据结构。在 Microsoft SQL Server 中,RESTORE VERIFYONLY 得到了增强以对数据进行附加检查,从而提高检测到错误的可能性。其目标是尽可能接近实际的还原操作。RESTORE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论