SQL SERVER认证考试题Word文档下载推荐.docx
《SQL SERVER认证考试题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《SQL SERVER认证考试题Word文档下载推荐.docx(58页珍藏版)》请在冰豆网上搜索。
--通过系统视图查看
selectname,product,provider,data_source,query_timeout,lazy_schema_validation,is_remote_login_enabled,is_rpc_out_enabled
fromsys.servers
whereis_linked=1
--删除链接服务器
execsp_dropserver'
选项C是登入的sql2服务器的数据库.是在sql2的环境下对其进行访问.但是,我们要访问的数据是分别存在两台服务器上的,但是,事实不是如此的,我们要在sql1的环境下,操纵sql2.所以必须先连接sql2.
OPENQUERY:
对给定的链接服务器执行指定的传递查询。
A.正确的命名规则.
B.别名的作用是:
应在需要定义具有特定格式的数据类型时创建.
C.操作的是别人的数据库利用sqlserver登入别人的数据库.
D.分布式查询:
需要的数据不来自同一台计算机
sqlserver数据哭端口1433
解释:
你需要定义一个链接服务器为每个外部数据源
要访问和配置安全上下文下你的分布
查询将运行。
在您创建一个连接服务器,您可以使用sql
OPENQUERY函数来执行您的分布式查询。
第2题
假设你正准备全新安装SQLSERVER2005服务器。
你需要去选择服务器允许的通讯协议,以
便客户端计算机可以使用这些协议连接到该服务器。
请问,下面那两个协议可以达到这个目
的?
A.NamedPipes(命名管道)
B.TCP/IP
C.SharedMemory(共享内存)
D.VirtualInterfaceAdapter(VIA)(虚拟接口适配器(VIA)协议)
E.Multiprotocol
答案:
A,B
客户端连接服务器有四种方式:
via(虚拟借口适配器),内存,TCP/IP,命名管道.
命名管道:
适用于同一网段.
TCP/IP:
命名管道跨计算机和网络访问.
内存:
同一台计算机,利用内存访问.
VIA:
不经常用.
你需要定义一个链接服务器为每个外部的解释:
默认情况下,客户都TCP和命名管道作为可用协议。
你可以操纵协议排序(使用SQL服务器客户端实用程序。
客户端应用程序使用的协议中指定的次序在客户端
计算机。
如果您正在使用SQLServer2005,协议订单被存储在
ProtocolOrder注册表项以下注册表个子关键字:
HKEY_LOCAL_MACHINE\SOFTWARE\\MSSQLSer微软
第3题
你配置一个采用默认设置全新安装的SQLSERVER2005计算机使用TCP/IP协议。
公司的安
全策略也要求每个服务器都使用防火墙。
你发现在本地计算机上可以连接到这个SQLSERVER
实例,但是客户端计算机却不能连接到这个SQLSERVER实例上。
为了找到最有可能导致这
个连接问题的原因,你首先应该做?
A.检查防火墙是否打开了1433端口。
B.检查防火墙是否打开了433端口。
C.检查客户端计算机是否用SharedMemory协议进行连接。
D.检查服务器是否正在运行中。
A
A.登入别人服务器,别人的防火墙必须关闭
B.433端口不是sqlserver端口.
C.多台计算机联网.
D.sqlserver已经打开,说明服务已经开启.
解说:
默认实例的数据库引擎使用端口1433,但这
可以改变。
实例的SQLServer2005ExpressEdition,SQL服务器移动,
和命名的实例的数据库引擎使用动态端口。
SQL服务器
浏览器服务允许用户连接到实例的数据库引擎,不是
监听端口1433,不知道端口号。
使用SQLServer
浏览器,你必须打开UDP端口1434。
第4题---安全性
公司A在分布式环境下有多个服务器。
目前,你正在使用名为SQL1和SQL2的两个安装有SQLSERVER2005的计算机进行工作。
这两个服务器都采用SQLSERVER身份验证,但是他们使用不同的登录。
现在,你需要写一个联合SQL1和SQL2数据的分布式查询,你应该怎么做?
A.确信SQL1和SQL2在彼此的安全上下文采用相同的登录名。
B.配置SQL2为SQL1的远程服务器。
在SQL1上写查询。
C.配置SQL2为SQL1的连接服务器并且去模拟远程登录。
D.配置SQL2为分布式服务器.用pass-throughauthentication.(传递认证)
C
同第一题利用了分布式查询
说明:
当你使用连接服务器来访问外部数据源,你
应该特别注意安全上下文外部连接。
你
可以配置连接服务器使用以下三种安全模式:
Self-mapping——当一个连接创建服务器,这种模式是增加本地登录,所以A——知道的力量
SQLServer试图连接到外部数据源使用当前用户的登录
凭证。
相同的登录和通过
第5题
公司A使用SQLServer2005.有用户反馈说报表执行缓慢。
你经过调查后发现一些查询并
选择使用最优的执行计划,同时你也注意到一些优化器统计数据并没有被使用并且另一些也过期了。
现在,需要去改正这个问题让报表执行更快,你将会使用下面那两个SQL语句?
A.DBCCCHECKTABLE
B.ALTERINDEXREORGANIZE
C.UPDATESTATISTICS
D.CREATESTATISTICS
E.DBCCSHOW_STATISTICS
F.DBCCUPDATEUSAGE
C,D
更新,检查
Updatastatistics针对指定表或索引视图中的一个或多个统计组(集合),更新有关键值分布的信息。
Create
当一个DBA创建一个索引,查询优化器存储统计
索引列的信息。
此外,创建统计数据,将
统计数据的列上创建未包含在索引,但是中使用
查询谓词。
更新统计数据将优化查询性能。
第6题---灾难恢复
假设你负责实现和维护SQLSERVER2005数据库服务器中的作业(jobs)。
其中,一些作业
在每周日运行,一些作业在每月的开始运行。
现在你需要以一种使用最少管理成本的方法去
安排这些作业,你应该如何做?
A.创建一个每周日运行的作业计划,并且指派需要周日运行的任务给这个计划。
然后创建另一个每月第一天运行的作业计划,并且指派每月开始运行的任务给这个作业计划。
B.为每个任务创建一个每天运行一次的作业。
然后使用SQL语句去检查当前的日期。
如果是星期日或每月的第一天则执行相应的代码。
C.创建一个每天运行的作业计划.指派作业任务给这个作业计划.如果这天是星期日或每月的第一天则执行作业。
D.为每个任务创建一个在每周日运行一次的作业;
增加另一个在每月第一天运行作业的作业计划。
A
D.一个作业可包含多个任务.作业很繁琐.
A.做多个任务被一个作业包含!
你需要2时间表或这两个任务将在星期天和执行
在每月的第一天。
创建一个工作计划为每一项任务运行一次
周而不是创建一个调度包含所有任务会用更多的
比需要管理工作。
第7题---灾难恢复
你发现在装有SQLSERVER2005计算机上的msdb数据库被损坏并且必须被恢复才能正常使用。
数据库每天都进行了备份,备份文件位于一个网络共享位置上,但是每个备份文件的文件名称都不能明确的指出是那个数据库的备份文件。
你需要最快的找到正确的备份文件。
已知备份文件列表的第一个文件的名称为DB_Backup.bak;
你应该使用下面那一个SQL语句?
A.RESTORELABELONLYFROMDISK=N\\Server1\Backup\DB_Backup.bak
B.RESTOREHEADERONLYFROMDISK=N\\Server1\Backup\DB_Backup.bak
C.RESTOREVERIFYONLYFROMDISK=N\\Server1\Backup\DB_Backup.bak
D.RESTOREDATABASEMSDBFROMDISK=N\\Server1\Backup\DB_Backup.bak
B
D:
\testone.bak
每次备份的文件成为媒体集(testone.bak)
A.Labelonlyfrom是的结果集,该结果集包含由给定备份设备标识的备份媒体的有关信息.--------访问媒体内容
B.Headeronlyfrom是会查看媒体上的所有备份集。
返回包含特定备份设备上所有备份集的所有备份标头信息的结果集。
-----------访问备份媒体集中的信息.
C.Verifyonlyfrom是验证备份但不还原备份,检查备份集是否完整以及整个备份是否可读。
但是,RESTOREVERIFYONLY不尝试验证备份卷中的数据结构。
在MicrosoftSQLServer中,RESTOREVERIFYONLY得到了增强以对数据进行附加检查,从而提高检测到错误的可能性。
其目标是尽可能接近实际的还原操作。
---------------验证
D.databasemsdbfrom是恢复还原系统数据库.
VERIFYONLY验证备份但不恢复,并且检查
看到备份集是完整和整个备份是可读的。
然而,
恢复VERIFYONLY并不试图验证数据的结构
包含在备份数量。
语法:
恢复VERIFYONLY
从[,……n]
[与
[{校验和|NO_CHECKSUM}]
[[,]{CONTINUE_AFTER_ERROR|STOP_ON_ERROR}]
[[,]文件=backup_set_file_number]
[[,]LOADHISTORY]
[[,]MEDIANAME={数据
第8题---灾难恢复
技术支持工程师报告说“在SQLSERVER2005数据库插入销售业务数据时出现错误”。
你调
查并研究那个错误后发现:
一个开发人员无意的删除了一个数据库中某个表的一些数据,而
且这些数据恰好是业务处理的关键数据。
这个数据库运行在完全恢复模式。
现在,你需要去
恢复那个表的数据,并且不能影响数据库中其它的数据的有效性,你应该怎么做?
A.备份当前的事务日志。
用一个不同的名字恢复数据库到数据丢失之前的时刻点,然后复制丢失数据的表到原始数据库中。
B.备份当前的事务日志。
恢复数据库到数据丢失之前的时刻点。
C.从存在的备份文件恢复数据库到数据丢失之前的时间。
D.恢复数据库到最后一次完整备份的时间点上。
B.数据库在恢复阶段不能插入其数据库内的数据.
首先,备份事物日志..
你只是想恢复的表,无意中改变了。
所有其他建议的解决方案将会恢复完整的数据库,因此
你会丢失数据,也许已经写信给其他表后的时间点
在你停止复苏。
第9题---其他
你的SQLSERVER2005数据库服务器所在的存储区域网络(thestorageareanetwork(SAN))
出现了电源事故(断电)。
为此,你需要去检查所有数据库在分配、结构、系统数据目录、逻辑完整性上是否完好。
你应该怎么做?
A.为每个文件组执行DBCCCHECKFILEGROUP。
B.执行DBCCCHECKCATALOG.
C.执行DBCCCHECKDB.
D.为每个表执行DBCCCHECKTABLE.
A.dbcccheckfilegroup检查当前数据库中指定文件组中的所有表的分配和结构完整性。
B.dbcccheckcatalog检查指定数据库内的目录一致性。
数据库必须联机。
C.dbccchecked检查指定数据库中所有对象的分配、结构和逻辑完整性。
D.dbccchecktable检查组成表或索引视图的所有页和结构的完整性。
DBCCCHECKDB会检查逻辑和物理完整的
在指定的数据库的对象:
CHECKALLOCDBCC——运行在数据库。
CHECKTABLEDBCC——运行在每个数据库中的表和视图。
CHECKCATALOGDBCC——运行在数据库。
——验证的内容索引数据库中的每个视图。
——验证服务代理数据库中的数据
第10题BI?
?
---
假设由你来负责导入数据到SQLServer2005数据库.现在,你们的部门开始接受来之跨国商店的包含销售业务数据的文本文件,文件中的每行数据以分号分割为多列.为了导入这些文件到销售数据库,你应该怎么做?
A.创建一个自定义格式的文件,指定分号作为行结束符。
===用BI.
B.使用bcp命令,指定分号作为字段的结束符号。
C.使用缺省参数设置的bcp命令。
D.使用缺省参数设置的BULKINSERT语句。
====缺少指定分隔符.
题意是:
把文本文件导入到数据库.
BULKINSERT按照制定格式导入文件
Bcp:
backupBCP从电脑磁盘里读取数据到数据库的过程.===只能BI
bcp效用批量复制数据的实例之间的MicrosoftSQL
Server2005和一个数据文件在一个用户指定的格式。
bcp的实用程序可以用于
进口大量的新行到SQLServer表或出口数据
表数据文件。
将数据导入表,您要么必须使用格式文件
创建该表或了解结构的表和类型的数据
对于有效的栏目。
第11题【Beta】
你正在开发一个基于Web的应用程序。
这个应用程序访问一个名为DataManager的SQL
SERVER2005数据库。
应用中的一个页面可以启动执行另一个数据库ReportingDatabase中
的一个存储过程。
已知DataManager数据库和ReportingDatabase数据库之间存在Service
Broker连接。
现在,你需要去增加两个新的消息类型到ServiceBroker服务。
为此,在这两个数据库中,你分别创建了名为ProcessReport和SendResult两个新的消息类型。
为了把这个两个消息类型增加到ServiceBroker服务,你首先应该怎么做?
A.以ACTIVATION参数值为DataManager.dbo.ProcessReport,为每个数据库创建一个队列。
B.使用语句BEGINDIALOGFROMSERVICE'
ProcessReport'
TOSERVICE'
SendResult'
在两个
数据库之间创建一个会话。
C.使用语句CREATECONTRACTProcessData(ProcessReportSENTBYINITIATOR,SendResult
SENTBYTARGET)在两个服务之间创建一个合约(contract)
D.使用语句CREATESERVICEDataManagerONQUEUEProcessReport为每个数据库创建一个服务(services)
C
在本题里,我们可以写代码:
--要创建要使用的两种消息类型,因为我们要使用的是字符串不是xml因此无需验证
createmessagetype[ProcessReport]validation=none
createmessagetype[SendResult]validation=none
--创建一个约定,对话框的初始化程序发出响应消息由对话框目标发送.
CREATECONTRACT[ProcessData]
(
ProcessReportSENTBYINITIATOR,
SendResultSENTBYTARGET
)
我们老师讲的ServiceBroker回话内容:
CreateDatabaseHelloWorldDB
go
UseHelloWorldDB
--创建要使用的两种消息类型。
我们要使用的消息将是字符串而不是XML因此无需进行验证
CREATEMESSAGETYPE[HelloWorldRequest]VALIDATION=NONE
CREATEMESSAGETYPE[HelloWorldResponse]VALIDATION=NONE
--创建一个约定。
请求由对话框的初始化程序发出响应消息由对话框目标发送。
CREATECONTRACT[HelloWorldContract]
[HelloWorldRequest]SENTBYinitiator,
[HelloWorldResponse]SENTBYtarget
--创建对话框在其间通信的两个队列。
A对话框请求两个队列。
CREATEQUEUE[HelloWorldTargetQueue]
CREATEQUEUE[HelloWorldInitiatorQueue]
--创建命名对话框端点的服务。
服务会将会话端点连接到队列。
CREATESERVICE[HelloWorldRequestService]ONQUEUE[HelloWorldTargetQueue]
[HelloWorldContract]--约定的名称
CREATESERVICE[HelloWorldResponseService]ONQUEUE[HelloWorldInitiatorQueue]
SETNOCOUNTON
DECLARE@conversationHandleuniqueidentifier--声明句柄变量
BeginTransaction
--开始HelloWorld服务的对话
BEGINDIALOG@conversationHandle
FROMSERVICE[HelloWorldResponseService]
TOSERVICE'
HelloWorldRequestService'
ONCONTRACT[HelloWorldContract]
WITHENCRYPTION=OFF,LIFETIME=600;
--发送消息
SENDONCONVERSATION@conversationHandle
MESSAGETYPE[HelloWorldRequest](N'
HelloWorld'
commit
--让我们查看目标队列以确保成功发送了消息。
--检查目标队列以确认消息已送达
select*from[HelloWorldTargetQueue]
--将消息主体转换为字符串,以便我们查看其中包含的内容
selectcast(message_bodyasnvarchar(MAX))from[HelloWorldTargetQueue]
--现在可以从目标队列中接收消息并将响应发送回初始化程序。
--使用Receive命令可从队列接收消息
--声明变量以存储接收到的数据
DECLARE@conversationHandleuniqueidentifier
declare@message_bodynvarchar(MAX)
declare@message_type_namesysname;
--ServiceBroker命令总是位于事务中
BeginTransaction;
--Receive命令的格式类似于一个选择列表。
首先列出要获取的列,然后指定要从中获取消息的队列
RECEIVEtop
(1)--只接收一条消息,因此我们可以直接保存到变量中。
@message_type_name=message_type_name,
--接收的消息类型
@conversationHandle=conversation_handle,
--对话的标识符我们通过下列语句接收该消息
@message_body=message_body
--作为varbinary(MAX)blob的消息内容
FROM[HelloWorldTargetQueue]
print@message_body
--如果这是一条helloworld消息,则用相应的问候语回答
if@message_type_name=N'
HelloWorldRequest'
Begin
--使用下列消息接收语句的相同会话
MESSAGETYPE[HelloWorldResponse]
(N'
HelloFrom'
+@@servername)
--这是我们希望从初始化程序接收的唯一消息,因此现在可以安全地结束对话。
ENDCONVERSATION@conversationHandle
End
--提交事务,如果此时我们回滚,所有内容将退回到我们开始时的状态–消息会返回到队列,并且没有发送响应
Commit
--确认我们从队列中删除了消息
selectcast(message_bodyasnvarchar(MAX))f