数据库面试题(SQLSERVER)及答案
数据库面试题(SQL2005)
一、选择题(5分一题,共50分)
1、公司A使用SQL Server 2005数据库。来自贸易伙伴的客户数据每天晚上都要导入到客户表。你要确保,在导入的过程中,对于存在的客户数据进行更新、对于不存在的客户数据进行插入。你该怎么做?(B)
A. 创建一个FOR触发器。
B. 创建一个INSTEAD OF 触发器。
C. 创建一个 AFTER 触发器。
D. 创建一个 DDL 触发器。
2、你负责维护你们部门SQL Server 2005数据库的调度作业。其中一个作业从多源为报表聚
集数据。这个作业每日运行,由多步构成。每一步都为某一特定报表聚集数据。有用户反映一些报表的数据近期没有更新。你要确保即使发生错误,聚合数据作业的每一步也都要执行。那你该如何做?(C)
A. 将作业中所有步骤组合成一个每日运行的步骤。
B. 创建一个通知;在每次出现错误时通知你。以便你能及时更正错误,重启作业。
C. 修改失败使要执行的步骤为“转到下一步”。
D. 设置作业重试当前步骤。
3、你要创建一个SQL Server 2005应用程序来存储和管理法律文件。原文件以XML文档存于一文件服务器上。此应用程序用于将文件插入到数据库。此后,这些文档必须能够从数据库中得到,并与原文件保持一致。你要设计一个表去存储这些文档数据,该怎样做?(A)
A. 将XML文档存于以nvarchar(max)为数据类型的一列中。
B. 分割此XML文档并将其存储于在一个关系结构中。
C. 将XML文档存于以XML为数据类型的一列中。
D. 将XML文档存于以varchar(8000)为数据类型的一列中。
4、你正在写一个查询,从SQL Server 2005数据库表中返回数据。一些数据存储在关系列中,一些存储在XML数据类型列中。你的查询需要返回一个关系结果集,其中包含关系域中的数据以及XML数据类型列的属性值。你应该使用XML数据类型的哪两个方法?(每一个正确的答案代表方案的一部分。选两项。)(AD)
A. the value() 方法。
B. the exist()方法。
C. the query()方法。
D. the nodes()方法。
E. the modify()方法。
5、你配置一个采用默认设置全新安装的SQL SERVER 2005计算机使用TCP/IP协议。公司的安全策略也要求每个服务器都使用防火墙。你发现在本地计算机上可以连接到这个SQL SERVER 实例,但是客户端计算机却不能连接到这个SQL SERVER 实例上。为了到最有可能导致这个连接问题的原因,你首先应该做?(A)
A. 检查防火墙是否打开了1433端口。
B. 检查防火墙是否打开了433端口。
C. 检查客户端计算机是否用Shared Memory 协议进行连接。
D. 检查服务器是否正在运行中。
6、假设你负责实现和维护SQL SERVER 2005 数据库服务器中的作业(jobs)。其中,一些作业在每周日运行,一些作业在每月的开始运行。现在你需要以一种使用最少管理成本的方法去安排这些作业,你应该如何做?(A)
A. 创建一个每周日运行的作业计划,并且指派需要周日运行的任务给这个计划。然后创建另一个每月第一天运行的作业计划,并且指派每月开始运行的任务给这个作业计划。
B. 为每个任务创建一个每天运行一次的作业。然后使用SQL 语句去检查当前的日期。如果是星期日或每月的第一天则执行相应的代码。
C. 创建一个每天运行的作业计划.指派作业任务给这个作业计划.如果这天是星期日或每月的第一天则执行作业。
D. 为每个任务创建一个在每周日运行一次的作业;增加另一个在每月第一天运行作业的作业计划。
7、你是公司A在北京总部SQL SERVER 2005数据库的管理员.销售部门需要一个包含了上个季度北京总部和天津分公司客户活动信息对比的报表,并且数据需要按照surname 和first name进行排序.恰好,在你的服务器上有一个天津分部数据库最近的备份,为此,你可以通过写一个查询来实现这个报表,并且对数据按照Surname 和FirstName列进行排序。可是你发现天津分部客户数据是按照不同的方式进行排序的;销售部门需要在15分钟内进行数据展示。为此,你需要以最快的解决方案得到已排序的数据并确保来源于两个数据库数据排序方式是一致的。你应该如何做?(D)
A. 使用复制数据库向导把天津分部的数据复制到一个新的数据库中,并且在复制过程中指定和北京总部数据同样的排序规则。
B. 使用数据导入导出向导导出天津分部的数据到一个新的表中,并且在导出过程中指定和北京总部数据同样的排序规则。
C. 修改数据格式文件使其和北京总部数据采用同样的排序规则,然后在导入数据。
D. 修改查询天津分部数据的SQL语句,使其在ORDER BY子句中使用COLLATE 子句并指定和北京总部数据同样的排序规则。
8、你正在SQL SERVER 2005 数据库中创建一个从联系人表删除联系人数据的存储过程。在存储过程中包含如下的语句来处理可能发生的任何错误。
BEGIN TRY
BEGIN TRANSACTION
DELETE FROM Person.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, @ErrorState)
END CATCH;
在你执行存储过程后发现,事务任然保持打开状态。为了正确的处理打开的事务,你应该
如何修改你的存储过程?(C)
A. 在CATCH语句块增加 COMMIT TRANSACTION 命令。
B. 在TRY语句块移除COMMIT TRANSACTION 命令。
C. 在CATCH块增加 ROLLBACK TRANSACTION命令。
D. 在TRY块增加ROLLBACK TRANSACTION 命令。
9、公司一个新的员工需要访问名为SQL1服务器上的SQL SERVER 2005 数据库.你用CREATE LOGIN ajones WITH PASSWORD = 'SQLServer$1'为其创建了登录名ajones。新员工报告说:当他在使用ajones登录的时候,收到如下的错误“用户‘ajones’登录失败。该用户与可信的SQL SERVER 连接无关联”。你需要解决这个问题并允许这个员工去登录SQL1。你应该怎么做?(A)
A.改变SQL SERVER 安全身份验证模式为“SQL SERVER 和 Windows 身份验证模式”。
B.改变SQL SERVER 安全身份验证模式为“Windows 身份验证模式”。
C. 保证创建的登录名是带方括号([])的。(例如:[loginname])
D. 通过用CREATE USER 语句给新创建的登录访问指定数据库的权限。
10、你正在SQL SERVER 2005 服务器上一个名为DB1的数据库上进行着工作。你发现由于对DB1中Table1表的扫描导致了查询执行缓慢。已知,Table是一个使用频繁而且非常巨大的表,同时你又确定了查询中包含如下的语句:SELECT col1,col2 FROM table1 WHERE col3 = 。在表保持对所有用户有效的情况下,为了最大化的提高查询性能,你应该怎么做?(E)
A. 更新DB1数据库中表Table1的所有统计信息。
B. 在DB1数据库中,使用CREATE STATISTICS 语句为表Table1的列col3创建缺少的统计信息。
C. 设置优先值提升选项的值为1。
安装sql server数据库没到D. 执行如下语句: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)
二、问答题(1、2题10分/题;3题30分,共50分)
1、用一条SQL语句查询出每门课都大于80分的学生姓名(表名为Table1)
name kecheng fenshu
张三语文 81
张三数学 75
李四语文 76
李四数学 90
王五语文 81
王五数学 100
王五英语 90
答案:
select distinct name from table1 where name not in (select distinct name from table1 where fenshu<=80)
2、XML查询,有如下XML信息
DECLARE @doc xml
SET @doc ='
2222

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。