SQLServer2008考证中文题库(70-433)

更新时间:2024-01-10 07:53:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1 . 你 有 一 个 用 户 叫 J o h n 。 他 具 有 访 问 S a l e s 架 构 的 S E L E C T 权 限 . 。 现 在 你 要 取 消 J o h n 对S a l e s . S a l e s O r d e r 表 的 S E L E C T 权 限 ,但 不 能 影 响 他 的 其 他 权 限 。你 应 该 使 用 哪 一 条 T - S Q L语 句 。 A . D R O P U S E R J o h n ;

B . D E N Y S E L E C T O N S a l e s . S a l e s O r d e r T O J o h n ; C . G R A N T D E L E T E O N S a l e s . S a l e s O r d e r T O J o h n ;

D . R E V O K E S E L E C T O N S a l e s . S a l e s O r d e r F R O M J o h n ; A n s w e r : B

2 你需要创建一列允许创建唯一约束的字段,你要选择哪两个列的定义?(每个正确答案代表一个完整解决方案,选择两个) A. nvarchar(100) NULL B. nvarchar(max) NOT NULL C. nvarchar(100) NOT NULL D. nvarchar(100) SPARSE NULL 答案:nvarchar(100) NULL nvarchar(100) NOT NULL

3 . 你 管 理 着 位 于 你 们 公 司 总 部 的 S Q L S e r v e r 2 0 0 8 数 据 库 。 数 据 库 中 有 一 张 表 d b o . S a l e s 。你 需 要 为 d b o . S a l e s 表 创 建 不 同 的 视 图 来 让 每 一 个 部 门 插 入、 更 新 、 删 除 行 , 每 个 部 门 必须 仅 仅 能 够 插 入 、 更 新 、 删 除 与 他 们 部 门 有 关 的 行 。 你 应 该 为 部 门 R e g i o n 1 创 建 什 么 视 图 ?

A . C R E A T E V I E W d b o . R e g i o n 1 S a l e s A S

S E L E C T S a l e s I D , O r d e r Q t y , S a l e s p e r s o n I D , R e g i o n I D F R O M d b o . S a l e s W H E R E R e g i o n I D = 1 ; B . C R E A T E V I E W d b o . R e g i o n 1 S a l e s A S

S E L E C T S a l e s I D , O r d e r Q t y , S a l e s p e r s o n I D , R e g i o n I D F R O M d b o . S a l e s W H E R E R e g i o n I D = 1 W I T H C H E C K O P T I O N ;

C . C R E A T E V I E W d b o . R e g i o n 1 S a l e s W I T H S C H E M A B I N D I N G A S

S E L E C T S a l e s I D , O r d e r Q t y , S a l e s p e r s o n I D , R e g i o n I D F R O M d b o . S a l e s W H E R E R e g i o n I D = 1 ; D . C R E A T E V I E W d b o . R e g i o n 1 S a l e s W I T H V I E W _ M E T A D A T A A S

S E L E C T S a l e s I D , O r d e r Q t y , S a l e s p e r s o n I D , R e g i o n I D F R O M d b o . S a l e s W H E R E R e g i o n I D = 1 ; A n s w e r : B

4 . 你 管 理 的 S Q L S e r v e r 2 0 0 8 数 据 库 里 有 一 个 表 d b o . S a l e s , 表 的 定 义 如 下 :

C R E A T E T A B L E [ d b o ] . [ S a l e s ] (

[ S a l e s I D ] [ i n t ] I D E N T I T Y ( 1 , 1 ) N O T N U L L P R I M A R Y K E Y C L U S T E R E D , [ O r d e r D a t e ] [ d a t e t i m e ] N O T N U L L , [ C u s t o m e r I D ] [ i n t ] N O T N U L L , [ S a l e s P e r s o n I D ] [ i n t ] N U L L ,

[ C o m m e n t D a t e ] [ d a t e ] N U L L ) ;

表 中 有 上 亿 的 订 单 。 你 运 行 下 面 的 查 询 语 句 来 获 得 销 售 人 员 在 d b o .

第 1 页

S a l e s 表 中 注 释 时 间 。

S E L E C T S a l e s I D , C u s t o m e r I D , S a l e s P e r s o n I D , C o m m e n t D a t e F R O M d b o . S a l e s

W H E R E C o m m e n t D a t e I S N O T N U L L A N D S a l e s P e r s o n I D I S N O T N U L L ;

你 发 现 这 个 查 询 运 行 起 来 慢 。 在 测 试 表 中 数 据 之 后 , 你 发 现 仅 仅 1 % 的 行 有 注 释 时 间 , 1 0 % 的 行 S a l e s P e r s o n I D 是 空 的 。 你 需 要 创 建 一 个 索 引 来 优 化 查 询 ,而 且 必 须 要 节 省 硬 盘 空 间 , 你 应 该 创 建 哪 个 索 引 ?

A. CREATE NONCLUSTERED INDEX idx1 ON dbo.Sales (CustomerID)

INCLUDE (CommentDate,SalesPersonID);

B. CREATE NONCLUSTERED INDEX idx1 ON dbo.Sales (SalesPersonID)

INCLUDE (CommentDate,CustomerID);

C. CREATE NONCLUSTERED INDEX idx1 ON dbo.Sales (CustomerID) INCLUDE(CommentDate)

WHERE SalesPersonID IS NOT NULL;

D. CREATE NONCLUSTERED INDEX idx1

ON dbo.Sales (CommentDate, SalesPersonID) INCLUDE(CustomerID)

WHERE CommentDate IS NOT NULL;

A n s w e r : D

5 . 你 的 数 据 库 大 小 是 5 G B , 其 中 有 一 个 S a l e s H i s t o r y 表 。 销 售 信 息 被 频 繁 地 插 入 和 更 新 。你 发 现 发 生 过 度 的 数 据 页 拆 分 , 你 必 须 要 减 少 S a l e H i s t o r y 表 的 这 种 数 据 页 拆 分 现 象 发生 。 你 应 该 使 用 什 么 代 码 段 ?

A. ALTER DATABASE Sales

MODIFY FILE (NAME = Salesdat3,SIZE = 10GB); B. ALTER INDEX ALL ON Sales.SalesHistory REBUILD WITH (FILLFACTOR = 60);

C. EXEC sys.sp_configure 'fill factor (%)', '60';

D. UPDATE STATISTICS Sales.SalesHistory(Products) WITH FULLSCAN, NORECOMPUTE;

A n s w e r : B

注 :添 加 或 更 改 数 据 时 ,S Q L S e r v e r 可 能 不 得 不 重 新 组 织 非 聚 集 索 引 页 中 的 数 据 存 储 。向 一 个 已 满 的 索 引 页 添 加 某 个 新 行 时 , S Q L

S e r v e r把 大 约 一 半 的 行 移 到 新 页 中 以 便为 新 行 腾 出 空 间 。 这 种 重 组 称 为 数 据 页 拆 分 。 页 拆 分 会 降 低 性 能 并 使 表 中 的 数 据 存 储 产生 碎 片 。 ) 6 . 你 有 一 个 表 d b o . C u s t o m e r s , 创 建 表 的 T - S Q L 语 句 如 下 :

CREATE TABLE dbo.Customers

第 2 页

(CustomerID int IDENTITY(1,1) PRIMARY KEY CLUSTERED, AccountNumber nvarchar(25) NOT NULL, FirstName nvarchar(50) NOT NULL, LastName nvarchar(50) NOT NULL, AddressLine1 nvarchar(255) NOT NULL, AddressLine2 nvarchar(255) NOT NULL, City nvarchar(50) NOT NULL,

StateProvince nvarchar(50) NOT NULL, Country nvarchar(50) NOT NULL, PostalCode nvarchar(50) NOT NULL,

CreateDate datetime NOT NULL DEFAULT(GETDATE()), ModifiedDate datetime NOT NULL DEFAULT(GETDATE())

)你 创 建 了 一 个 存 储 过 程 , 其 中 包 括 C u s t o m e r s 表 中 的 A c c o u n t N u m b e r 、 C o u n t r y , 和S t a t e P r o v i n c e 列 , 有 一 个 参 数 用 来 筛 选 A c c o u n t N u m b e r 列 。 你 需 要 优 化 这 个 存 储 过 程 的 性 能 , 不 改 变 表 的 现 有 结 构 , 你 应 该 使 用 哪 个 T - S Q L 语 句 ?

A . C R E A T E S T A T I S T I C S S T _ C u s t o m e r _ A c c o u n t N u m b e r O N d b o . C u s t o m e r ( A c c o u n tN u m b e r ) W I T H F U L L S C A N ;

B . C R E A T E C L U S T E R E D I N D E X I X _ C u s t o m e r _ A c c o u n t N u m b e r O N d b o . C u s t o m e r ( A c c o u n t N u m b e r ) ;

C . C R E A T E N O N C L U S T E R E D I N D E X I X _ C u s t o m e r _ A c c o u n t N u m b e r O N d b o . C u s t o m e r ( A c c o u n t N u m b e r ) W H E R E A c c o u n t N u m b e r = ' ' ;

D . C R E A T E N O N C L U S T E R E D I N D E X I X _ C u s t o m e r _ A c c o u n t N u m b e r

O N d b o . C u s t o m e r ( A c c o u n t N u m b e r ) I N C L U D E ( C o u n t r y , S t a t e P r o v i n c e ) ;

A n s w e r : D

7 你有一个 Customer 表,需要确保表里的客户数据满足下列需求:未通过身份验证的信用额度必须为 0。

信用额度必须少于 10000。你应使用哪个约束? A. CHECK (CreditLimt BETWEEN 1 AND 10000)

B. CHECK (Verified = 1 AND CreditLimt BETWEEN 1 AND 10000)

C. CHECK ((CreditLimt = 0 AND Verified = 0) OR (CreditLimt BETWEEN 1 AND 10000 AND Verified = 1))

D. CHECK ((CreditLimt = 0 AND Verified = 0) AND (CreditLimt BETWEEN 1 AND 10000 AND Verified =1))

答案:CHECK((CreditLimt=0 AND Verified=0) OR (CreditLimt BETWEEN 1 AND 10000 AND Verified=1))

8 . 你 有 一 个 表 A c c o u n t s R e c e i v a b l e 。 表 没 有 索 引 , 表 中 有 7 5 0 0 0 行 数 据 。 创 建 表 的 T - S Q L 语 句 如 下 :

C R E A T E T A B L E A c c o u n t s R e c e i v a b l e ( c o l u m n _ a I N T N O T N U L L ,

第 3 页

c o l u m n _ b V A R C H A R ( 2 0 ) N U L L ) O N [ P R I M A R Y ] ;

现 有 一 个 分 区 函 数 F G _ A c c o u n t D a t a , 你 需 要 把 A c c o u n t s R e c e i v a b l e 表 从 主 文 件 组 移 动 到

F G _ A c c o u n t D a t a 。 你 应 该 使 用 哪 个 T - S Q L 语 句 ? A. CREATE CLUSTERED INDEX idx_AccountsReceivable ON AccountsReceivable(column_a) ON [FG_AccountData];

B. CREATE NONCLUSTERED INDEX idx_AccountsReceivable ON AccountsReceivable(column_a) ON [FG_AccountData];

C. CREATE CLUSTERED INDEX idx_AccountsReceivable

ON AccountsReceivable(column_a) ON FG_AccountData(column_a);

D. CREATE NONCLUSTERED INDEX idx_AccountsReceivable ON AccountsReceivable(column_a) ON FG_AccountData(column_a); A n s w e r : C

9 你有含名为 Invoice 表的 SQL Server 2008 数据库 Contoso。这个表的主键是 InvoiceId,并且由INDENTITY 属性填充。表 Invoice 与表 InvoiceLineItem 表有关联。为了提高数据载入速度,你删除了Invoice 所有的约束。你发现当删除约束后,InvoiceId=10 的记录也从数据库中删除了。你需要重新将相同 InvoiceId 值的记录重新插入到 Invoice 表中。你应使用哪个 T-SQL 语句? A. INSERT INTO Invoice (InvoiceId, ...) VALUES (10, ...)

B. SET IDENTITY_INSERT Invoice ON;

INSERT INTO Invoice (InvoiceId, ...) VALUES (10, ...) SET IDENTITY_INSERT Invoice OFF;

C. ALTER TABLE Invoice;

ALTER COLUMN InvoiceId int;

INSERT INTO Invoice (InvoiceId, ...) VALUES (10, ...)

D. ALTER DATABASE Contoso SET SINGLE_USER; INSERT INTO Invoice (InvoiceId, ...) VALUES (10, ...) ALTER DATABASE Contoso SET MULTI_USER; 答案:B

10 你 准 备 开 发 一 个 新 数 据 库 , 这 个 数 据 库 包 含 SalesOrderDetail 表 和 Product 表 。 你 需 要 确 保SalesOrderDetail 表中已引用的所有产品在 Product 表中有相应的记录。 A. JOIN B. DDL trigger C. Foreign key constraint D. Primary key constraint 答案:Foreign key constraint(外键约束)

11 你将创建一个保存客户全球定位系统的表。你需要确保这个表允许你能区分

指定销售范围内的客户,并计算这个客户与最近商店的距离。

A. geometry C. nvarchar(max)

B. geography

D. varbinary(max) FILESTREAM

答案:geography

12 你计划在 Sales.Product 表中添加名为 SmallKey 的一列,允许使用惟一性约

第 4 页

束。你需要确保下列信息适用于新添加的列:?a1?和?A1?被认为不同的值

在排序子句中,?a?和?A?排在?b?和?B?之前你需要为这个新列选择满足要求的排序规则。你应选择哪个排序规则?

A. Latin1_General_BIN C. SQL_Latin1_General_CP1_CI_AS

B. SQL_Latin1_General_CP1_CI_AI D. SQL_Latin1_General_CP1_CS_AS

答案:D

13、 你有多个表,表示相同实体的代表属性。这些属性值包括 text、geometry、

varchar(max)和定义为?bit NOT NULL?的用户自定义数据类型。你计划合并多表数据到一个表中。这个表使用 SPARSE 选项进行半结构化存储。哪个数据类型可用于 SPARSE 选项?

A. text B. geometry C. varchar(max) D. A user-defined type defined as 'bit NOT NULL'

答案:C

14 你现在用两列存储时间信息。一列包含当地时间,一列包含当地时间与 UTC

(通用协调时间或格林尼致治标准时间)的不同之处。你需要在一列中存储这些数据。你应选择哪个数据类型?

A. time

B. datetime2

C. datetime2(5)

D. datetimeoffset

答案:D

1 5 . 你 有 两 个 分 区 表 T r a n s a c t i o n 和 T r a n s a c t i o n H i s t o r y 。现 在 你 需 要 把 T r a n s a c t i o n 表 的 一个 分 区 存 档 到 T r a n s a c t i o n H i s t o r y 表 。 应 该 使 用 哪 种 方 法 ?

A. ALTER TABLE ... SWITCH ...

B. INSERT ... SELECT ...; TRUNCATE TABLE C. ALTER PARTITION FUNCTION ... MERGE ... D. ALTER PARTITION FUNCTION ... SPLIT ... A n s w e r : A

16 你将在数据库中创建一张新表,你的企业需要你在这张表里保存仅 7 天的数据。你需要实施分区表来满足企业的需求。你应完成哪个任务? A. Create the partition function Create the partition scheme Create the table

B. Create the partition function Create the table

Create a filtered index

C. Add a secondary file to the primary filegroups Create the table

Create the distributed partitioned view D. Create the partition function Create the partition scheme

Create the distributed partitioned view

答案:A

1 7 . 你 需 要 使 用 W I T H R E C O M P I L E 选 项 来 修 改 存 储 过 程 。 哪 种 类 型 的 存 储 过 程 你 可 以 修改 ? ( 选 择 两 个 ) A . C L R 程 序 集 中 执 行 的 存 储 过 程

第 5 页

B . 带 有 F O R R E P L I C A T I O N 选 项 的 存 储 过 程 C . 带 有 W I T H E N C R Y P T I O N 选 项 的 存 储 过 程 D . 使 用 R E C O M P I L E 选 项 的 存 储 过 程 A n s w e r : C D

1 8 . 你 有 一 个 S Q L S e r v e r 数 据 库 。 数 据 库 中 有 两 个 架 构 M a r k e t i n g 和 S a l e s 。 M a r k e t i n g 架构 拥 有 者 是 M a r k e t i n g M a n a g e r , S a l e s 架 构 拥 有 者 是 S a l e s M a n a g e r 。 现 在 有 一 个 用 户 J o h n必 须 使 用 存 储 过 程 M a r k e t i n g . G e t S a l e s S u m m a r y 访 问 S a l e s . O r d e r s 表 。 J o h n 没 有S a l e s . O r d e r s 表 的 S E L E C T 权 限 。 但 用 户 S a l e s U s e r 具 有 S a l e s . O r d e r s 表 的 S E L E C T 权 限 。 你必 须 给 J o h n 和 M a r k e t i n g . G e t S a l e s S u m m a r y 存 储 过 程 合 适 的 权 限 。 你 应 该 怎 么 做 ?

A . M a r k e t i n g . G e t S a l e s S u m m a r y 创 建 时 应 该 使 用 E X E C U T E A S ' S a l e s U s e r ' 子 句 。J o h n 应 该 授 予 E X E C U T E M a r k e t i n g . G e t S a l e s S u m m a r y 的 权 限

B . M a r k e t i n g . G e t S a l e s S u m m a r y 创 建 时 应 该 使 用 E X E C U T E A S O W N E R 子 句 。J o h n 应 该 授 予 E X E C U T E W I T H G R A N T O P T I O N o n M a r k e t i n g . G e t S a l e s S u m m a r y .

C . M a r k e t i n g . G e t S a l e s S u m m a r y 创 建 时 应 该 使 用 E X E C U T E A S C A L L E R 子 句 。 J o h n 应 该 授予 I M P E R S O N A T E 权 限 。

D . M a r k e t i n g . G e t S a l e s S u m m a r y 创 建 时 不 使 用 E X E C U T E A S 子 句 。J o h n 应 该 授 予 S a l e s . O r d e r s 表 的 S E L E C T 权 限 。 A n s w e r : A

19 你需要创建一个接收名为@Customers 表值参数的存储过程。你应使用哪个代码?

A. CREATE PROCEDURE AddCustomers (@Customers varchar(max))

B. CREATE PROCEDURE AddCustomers (@Customers Customer READONLY) C. CREATE PROCEDURE AddCustomers (@Customers CustomerType OUTPUT) D. CREATE PROCEDURE ADDCUSTOMERS(@Customers varchar (max)) AS

EXTERNAL NAME Customer.Add.NewCustomer

答案:CREATE PROCEDURE AddCustomers(@Customers Customer READONLY)

2 0 . 你 有 一 个 计 算 列 , 该 计 算 列 使 用 用 户 自 定 义 函 数 来 计 算 。 这 个 用 户 自 定 义 函 数 返 回一 个 格 式 化 的 账 号 。 为 了 提 高 查 询 性 能 , 必 须 在 该 计 算 列 上 创 建 索 引 。 对 于 这 个 用 户 自定 义 函 数 你 应 该 关 联 什 么 样 的 对 象 属 性 组 合 ?

A . I s D e t e r m i n i s t i c = T r u e I s S y s t e m V e r i f i e d = T r u e U s e r D a t a A c c e s s = F a l s e S y s t e m D a t a A c c e s s = F a l s e

B . I s D e t e r m i n i s t i c = T r u e I s S y s t e m V e r i f i e d = T r u e I s P r e c i s e = T r u e

I s T a b l e F u n c t i o n = T r u e

第 6 页

C . I s D e t e r m i n i s t i c = F a l s e I s S y s t e m V e r i f i e d = T r u e U s e r D a t a A c c e s s = F a l s e S y s t e m D a t a A c c e s s = F a l s e

D . I s D e t e r m i n i s t i c = F a l s e I s S y s t e m V e r i f i e d = T r u e I s P r e c i s e = T r u e

S y s t e m D a t a A c c e s s = F a l s e

A n s w e r : A

2 1 . 在 一 个 给 定 的 子 句 中 , 你 要 判 别 出 特 定 的 年 份 2 月 是 否 包 含 有 2 9 天 , 你 应 该 使 用 什 么对 象 ?

A . D M L t r i g g e r ( D M L 触 发 器 ) B . S t o r e d p r o c e d u r e ( 存 储 过 程 )

C . T a b l e - v a l u e d f u n c t i o n ( 表 值 函 数 ) D . S c a l a r - v a l u e d f u n c t i o n ( 标 量 函 数 ) A n s w e r : D

2 2 . 你 创 建 的 一 个 函 数 引 用 了 一 张 表 , 你 需 要 确 保 该 表 不 能 被 删 除 。 创 建 函 数 你 应 该 使用 哪 个 选 项 ? A. WITH ENCRYPTION B. WITH EXECUTE AS

C. WITH SCHEMABINDING

D. WITH RETURNS NULL ON NULL INPUT A n s w e r : C 2 3 .

你 在 使 用 微 软 S Q L S e r v e r 2 0 0 8 开 发 数 据 库 。 数 据 库 中 包 含 的 表 如 图 所 示 。

要 求 你 做 到 : 假 如 p a r t s 是 属 于 某 个 k i t , 那 么 不 能 被 删 除 , 并 且 此 行 的 I s D e l e t e d 列 设 置 成 ? T r u e ? 。 假 如

p a r t s 不 属 于 某 个 k i t , 那 么 可 以 删 除 。 在 触 发 器 中 你 使 用 了 以 下 的 T -

第 7 页

S Q L 代 码 :

UPDATE p

SET IsDeleted = 1

FROM KitPart kp

JOIN deleted d ON kp.PartID = d.PartID

JOIN Part p ON kp.PartID = p.PartID;

DELETE FROM p

FROM Part p

JOIN deleted d ON p.PartID = d.PartID

LEFT OUTER JOIN KitPart kp ON p.PartID = kp.PartID

WHERE kp.KitID IS NULL;

你 必 须 在 触 发 器 中 执 行 这 个 T - S Q L 代 码 , 你 应 该 选 择 哪 种 触 发 器 语 法 ?

A. CREATE TRIGGER tr_Part_d ON Part AFTER DELETE AS BEGIN ... END

B. CREATE TRIGGER tr_Part_d ON Part INSTEAD OF DELETE AS BEGIN ...... END

C. CREATE TRIGGER tr_KitPart_d ON KitPart AFTER DELETE AS BEGIN ...... END

D. CREATE TRIGGER tr_KitPart_d ON KitPart INSTEAD OF DELETE AS BEGIN ...... END

A n s w e r : B

2 4 . 你 有 个 第 三 方 的 应 用 程 序 , 这 个 应 用 程 序 直 接 向 表 中 插 入 数

第 8 页

据 。 现 在 你 对 这 张 表 增加 两 个 新 列 , 这 两 新 列 不 能 接 受 空 值 , 并 且 不 能 使 用 默 认 值 。 你 要 确 保 增 加 的 新 列 不 能中 断 这 个 第 三 方 应 用 程 序 的 运 行 。 你 应 该 如 何 做 ? A . 创 建 D D L 触 发 器 。 B . 创 建 存 储 过 程 。

C . 创 建 A F T E R I N S E R T 触 发 器 。

D . 创 建 I N S T E A D O F I N S E R T 触 发 器 。 A n s w e r : D

2 5 . 你 的 数 据 库 里 有 两 张 表 O r d e r 和 O r d e r D e t a i l s , 这 两 张 表 存 储 了 订 单 信 息 。 他 们 之 间 通过 O r d e r I D 列 相 互 关 联 。 你 的 业 务 要 求 O r d e r 表 中 的 L a s t M o d i f i e d D a t e 列 必 须 能 反 映 出O r d e r D e t a i l s 表 中 相 关 订 单 改 变 的 日 期 和 时 间 。 你 需 要 创 建 一 个 触 发 器 来 完 成 你 的 业 务需 求 。 你 应 该 使 用 哪 一 个 T - S Q L 语 句 ?

A. CREATE TRIGGER [uModDate] ON [OrderDetails] INSTEAD OF UPDATE FOR REPLICATION AS

UPDATE [Order]

SET [LastModifiedDate] = GETDATE() FROM inserted

WHERE inserted.[OrderID] = [Order].[OrderID];

B. CREATE TRIGGER [uModDate] ON [Order] INSTEAD OF UPDATE NOT FOR REPLICATION AS

UPDATE [Order]

SET [LastModifiedDate] = GETDATE() FROM inserted

WHERE inserted.[OrderID] = [Order].[OrderID];

C. CREATE TRIGGER [uModDate] ON [Order] AFTER UPDATE FOR REPLICATION AS

UPDATE [Order]

SET [LastModifiedDate] = GETDATE() FROM inserted

WHERE inserted.[OrderID] = [Order].[OrderID];

D. CREATE TRIGGER [uModDate] ON [OrderDetails] AFTER UPDATE NOT FOR REPLICATION AS

UPDATE [Order]

SET [LastModifiedDate] = GETDATE() FROM inserted

WHERE inserted.[OrderID] = [Order].[OrderID]; A n s w e r : D

2 6 . 你 需 要 确 保 表 不 能 从 数 据 库 中 删 除 , 你 应 该 如 何 做 ?

第 9 页

A . 创 建 含 有 C O M M I T 的 D D L 触 发 器 。 B . 创 建 含 有 C O M M I T 的 D M L 触 发 器 。 C . 创 建 含 有 R O L L B A C K 的 D D L 触 发 器 。 D . 创 建 含 有 R O L L B A C K 的 D M L 触 发 器 。 A n s w e r : C

2 7 . 你 负 责 S Q L - S e r v e r 数 据 库 ,你 要 求 只 能 在 每 个 月 的 第 一 天 可 以 添 加 和 修 改 表 。你 必 须确 保 在 其 他 的 时 间 尝 试 修 改 和 创 建 表 不 能 成 功 , 并 且 收 到 错 误 信 息 。 你 应 该 使 用 哪 个T - S Q L 语 句 ?

A. CREATE TRIGGER TRG_TABLES_ON_FIRST ON DATABASE FOR CREATE_TABLE AS

IF DATEPART(day,getdate())>1 BEGIN

RAISERROR ('Must wait til next month.', 16, 1)

END

B. CREATE TRIGGER TRG_TABLES_ON_FIRST ON DATABASE FOR CREATE_TABLE,ALTER_TABLE AS

IF DATEPART(day,getdate())>1 BEGIN

RAISERROR ('Must wait til next month.', 16, 1)

END C. CREATE TRIGGER TRG_TABLES_ON_FIRST ON DATABASE FOR CREATE_TABLE,ALTER_TABLE AS

IF DATEPART(day,getdate())>1 BEGIN

ROLLBACK

RAISERROR ('Must wait til next month.', 16, 1) END

D. CREATE TRIGGER TRG_TABLES_ON_FIRST ON ALL SERVER FOR ALTER_DATABASE AS

IF DATEPART(day,getdate())>1 BEGIN

ROLLBACK

RAISERROR ('Must wait til next month.', 16, 1)

END

A n s w e r : C

2 8 . 在 数 据 库 中 有 一 个 C L R 程 序 集 ,这 个 程 序 集 仅 仅 引 用 了 来 自 微 软 . N E T 框 架 的 程 序 集

且 不 访 问 外 部 的 资 源 。 你 需 要 以 最 小 的 权 限 来 部 署 这 个 程 序 集 , 要 确 保 数 据 库 尽 可 能 安 全 , 你 应 该 设 置 什 么 选 项 ?

A. PERMISSION_SET = SAFE TRUSTWORTHY ON B. PERMISSION_SET = SAFE TRUSTWORTHY OFF C. PERMISSION_SET = UNSAFE TRUSTWORTHY ON

D. PERMISSION_SET = EXTERNAL_ACCESS TRUSTWORTHY OFF A n s w e r : B

注 : S A F E 不 能 访 问 外 部 资 源 , U N S A F E 可 以 访 问 外 部 资 源 , U N S

第 10 页

A F E 最 大 的 权 限 既 可 以访 问 外 部 资 源 也 可 以 访 问 A P I 和 C O M 组 件 。

2 9 . 你 创 建 了 一 个 程 序 集 , 其 中 使 用 了 非 托 管 代 码 访 问 外 部 资 源 。 你 需 要 使 用 合 适 的 权限 来 部 署 这 个 程 序 集 , 应 该 使 用 什 么 权 限 设 置 ?

A. SAFE

B. UNSAFE

C. EXTERNAL_ACCESS

D. Default permission set

A n s w e r : B

30 你有 Products 表和 OrderDetails 表。Products 表在 ProductID 列上有与 OrderDetails 表关联的外键。你有下列 T-SQL 批处理:

BEGIN TRY

BEGIN TRANSACTION

DELETE FROM Products WHERE ProductID = 5; BEGIN TRANSACTION

INSERT INTO OrderDetails

( OrderID, ProductID, Quantity ) VALUES( 1234, 5, 12 );

COMMIT TRANSACTION COMMIT TRANSACTION END TRY

BEGIN CATCH

ROLLBACK TRANSACTION PRINT ERROR_MESSAGE(); END CATCH

你需要分析执行这个批处理的结果。

A. 1. The product will be deleted from the Products table.

2. The order details will be inserted into the OrderDetails table.

B. 1. The product will be deleted from the Products table.

2. The order details will not be inserted into the OrderDetails table.

C. 1. The product will not be deleted from the Products table. 2. The order details will be inserted into the OrderDetails table. D. 1. The product will not be deleted from the Products table. (Products 表中数据没有被删除)

2. The order details will not be inserted into the OrderDetails table. (订单明细也不会插入到 OrderDetails表) 答案:D

3 1 . 你 使 用 T R Y … C A T C H 来 进 行 错 误 处 理 , 你 需 要 把 T R Y 中 遇 到 的 错 误 传 递 到 C A T C H 块来 进 行 处 理 , 你 应 该 使 用 哪 个 严 重 级 别 ? A . 0 B . 9 C . 1 0 D . 1 6 A n s w e r : D

注 : T R Y 块 中 遇 到 严 重 级 别 1 1 - 2 0 的 异 常 能 被 C A T C H 块 捕 获 到 , 2 0 以 上 的 错 误 为 致 命 错误 会 导 致 中 断 数 据 库 链 接 , 1 - 1 0 为 警 告 。 3 2 . 有 一 个 表 O r d e r s , 你 的 任 务 是 修 改 公 司 的 主 数 据 库 , 删 除 所 有 不 活 动 的 订 单 记 录 。 你开 发 了 一 个 存 储 过 程 来 删 除 那 些 行 , 以 下 是 你 写 的 代 码 片 段 : 01 BEGIN TRY

02 DECLARE @RowCount INT = 1000 03 WHILE @RowCount = 1000 04 BEGIN

05 DELETE TOP (1000) FROM Orders WHERE Status = 'Inactive';

第 11 页

06 SET @RowCount = @@ROWCOUNT 07 ... 08 END 09 END TRY

10 BEGIN CATCH

11 PRINT ERROR_MESSAGE() 12 END CATCH

你 需 要 插 入 一 条 T - S Q L 语 句 , 当 每 一 个 数 据 块 删 除 以 后 来 提 醒 你 。 在 第 0 7 行 你 应 该 插 入哪 个 T - S Q L 语 句 ? A. RAISERROR ('Deleted %i rows', 6, 1, @RowCount) B. RAISERROR ('Deleted %i rows', 16, 1, @RowCount)

C. RAISERROR ('Deleted %i rows', 10, 1, @RowCount) WITH NOWAIT D. RAISERROR ('Deleted %i rows', 11, 1, @RowCount) WITH NOWAIT A n s w e r : C

33 你有一个使用可重复读的隔离级别的事务处理。这个事务经常引起阻塞问题。你需要减少阻塞同时避免脏读和不可重复的读。你应使用哪个事务隔离级别?

A. SNAPSHOT B. SERIALIZABLE

C. READ COMMITTED D. READ UNCOMMITTED 答案:A

34 你要写一个批处理,包含了修改已有产品的多条 UPDATE 语句。这些更新语句放在显式事务中。你需要在这个事务前设置一个选项使得当 T-SQL 语句执行产生错误时,SQL Server 自动终止整个事务并回滚。 A. ARITHABORT B. XACT_ABORT

C. IMPLICIT_TRANSACTIONS D. REMOTE_PROC_TRANSACTIONS 答案:B

35 你有一个名为 JobCandidate 的表,任务是在 JobCandidate 表中删除一行。你需要写一事务允许数据库在不知道这条记录删除执行时间的情况下恢复到记录删除的精确点。你应使用哪个查询? A. BEGIN TRANSACTION DELETE FROM JobCandidate WHERE JobCandidateID = 10; COMMIT TRANSACTION;

B. BEGIN TRANSACTION

WITH MARK N'Deleting a Job Candidate'; DELETE FROM JobCandidate WHERE JobCandidateID = 10; COMMIT TRANSACTION

C. BEGIN TRANSACTION Delete_Candidate WITH MARK DELETE FROM JobCandidate WHERE JobCandidateID = 10;

COMMIT TRANSACTION Delete_Candidate;

D. DECLARE @CandidateName varchar(50) = 'Delete_Candidate' BEGIN TRANSACTION @CandidateName DELETE FROM JobCandidate WHERE JobCandidateID = 10;

第 12 页

COMMIT TRANSACTION @CandidateName; 答案:C

36 你有下列名为 Sales 的表。你需要按客户姓名和销售日期排序返回销售数据。为每

个客户提供最近期的销售必须首先列出。你应使用哪个查询? A. SELECT CustomerName,SalesDate FROM Sales

ORDER BY CustomerName,SalesDate;

B. SELECT CustomerName,SalesDate FROM Sales ORDER BY SalesDate DESC,CustomerName; C. SELECT CustomerName,SalesDate FROM Sales ORDER BY CustomerName,SalesDate DESC; D. SELECT CustomerName,SalesDate FROM Sales ORDER BY CustomerName DESC;

答案:C

37 你有一个名为 Sales.SalesOrderHeader 的表和一个名为 Person.Person 的

表。你的任务是写一个返回SalesOrderID 和 SalesPersonName 两列 ,并且 OrderDate 大 于 20040101 的查询。SalesPersonName 由Person.Person 表中的 FirstName 和 LastName 两列连接组成。你需要写一个 FirstName 和 LastName 两列连接按字母表顺序进行排序的查询来返回数据。

A. SELECT SalesOrderID, FirstName + ' ' + LastName as SalesPersonName FROM Sales.SalesOrderHeader H

JOIN Person.Person P on P.BusinessEntityID = H.SalesPersonID

WHERE OrderDate > '20040101' ORDER BY FirstName ASC, LastName ASC

B. SELECT SalesOrderID, FirstName + ' ' + LastName as SalesPersonName FROM Sales.SalesOrderHeader H JOIN Person.Person P On P.BusinessEntityID = H.SalesPersonID WHERE OrderDate > '20040101'

ORDER BY FirstName DESC, LastName DESC

C. SELECT SalesOrderID, FirstName +' ' + LastName as SalesPersonName FROM Sales.SalesOrderHeader H JOIN Person.Person P on

P.BusinessEntityID = H.SalesPersonID

WHERE OrderDate > '20040101' ORDER BY SalesPersonName ASC

D. SELECT SalesOrderID, FirstName + ' ' + LastName as SalesPersonName FROM Sales.SalesOrderHeader H JOIN Person.Person P on P.BusinessEntityID = H.SalesPersonID

WHERE OrderDate > '20040101' ORDER BY SalesPersonName DESC

答案:C

38 你有一个名为 Sales.PotentialClients 的表。这个表包含一个名为

EmailAddress 的列。你的任务是开发一个返回 Sales.PotentialClients 表中有效的”.com”email 地址的报表。一个有效的 email 地址必须是在@符号

前至少有一个字符,”.com”前@符号后至少有一个字符。你需要写一个返回满足企业需求数据的 T-SQL 语句。你应使用哪个 T-SQL 语句?

A. select * from Sales.PotentialClients where EmailAddress like '_%@_%.com' B. select * from Sales.PotentialClients where EmailAddress like '%@%.com' C. select * from Sales.PotentialClients where EmailAddress like '_%@_.com'

第 13 页

D. select * from Sales.PotentialClients where EmailAddress like '%@%[.]com' 答案:A

39 有一个名为 Orders 的表。OrderID 被定义为一个 IDENTITY(1,1)的标识列。OrderDate 有一个为 1 的默认值。你需要插入一条 CustomerId 45、今天的日期时间、价格 89.00 的记录到 Orders 表中。你应使用哪个语句?

A. INSERT INTO Orders(CustomerId, OrderDate, Cost) VALUES (45, DEFAULT, 89.00);

B. INSERT INTO Orders(OrderID, CustomerId, OrderDate, Cost) VALUES (1, 45, DEFAULT, 89.00);

C. INSERT INTO Orders(CustomerId, OrderDate, Cost) VALUES (45, CURRENT_TIMESTAMP, 89.00);

D. INSERT INTO Orders(OrderID, CustomerId, OrderDate, Cost) VALUES (1, 45, CURRENT_TIMESTAMP, 89.00); 答案:C

第 14 页

40 你有下列两个表。

这些表

的外键关联能级联删除。你需要删除 Orders 表中的所有记录。你应 使用哪个 T-SQL 语句?

A. DROP TABLE Orders B. DELETE FROM Orders C. TRUNCATE TABLE Orders D. DELETE FROM OrderDetails 答案:B

41 你的任务是删除名为 NewWidgets 表中的 1000 条记录。属性列 ToBeDeleted 值为 1 的记录有 2000 条。你需要写一个能精确删除 1000 条记录的 T-SQL 批处理。你应使用哪个 T-SQL 批处理?

A. DELETE TOP (1000) dbo.NewWidgets

WHERE ToBeDeleted = 1;

B. DECLARE @BatchSize INT = 10; WHILE (@BatchSize = 10)

DELETE TOP (@BatchSize) dbo.NewWidgets WHERE ToBeDeleted = 1;

C. DELETE TOP ((SELECT COUNT(*) FROM dbo.NewWidgets

WHERE ToBeDeleted = 1)) w FROM dbo.NewWidgets w WHERE w.ToBeDeleted = 1;

D. DECLARE @TotalRowCount INT = 0; WHILE (@TotalRowCount <= 1000) BEGIN

DELETE TOP (10) dbo.NewWidgets WHERE ToBeDeleted = 1;

SET @TotalRowCount += @@ROWCOUNT; END

答案:A

42 你有名为 Sales.SalesOrderDetails 和 Sales.SalesOrderHeader 的两个表。你的任务是修改一类特殊销售员销售额的折扣数。只有 SalesPersonID 为 290,Sales.SalesOrderDetail 表中所有条目的 UnitPriceDiscount为设置为.1。 A. UPDATE d SET UnitPriceDiscount = .1

FROM Sales.SalesOrderDetail d INNER JOIN

Sales.SalesOrderHeader h ON h.SalesOrderID = d.SalesOrderID WHERE h.SalesPersonID = 290;

B. UPDATE Sales.SalesOrderDetail SET UnitPriceDiscount = .1 FROM Sales.SalesOrderHeader h WHERE h.SalesPersonID = 290;

第 15 页

C. UPDATE Sales.SalesOrderDetail SET UnitPriceDiscount = .1 WHERE EXISTS (SELECT * FROM Sales.SalesOrderHeader h WHERE h.SalesPersonID = 290);

D. UPDATE Sales.SalesOrderDetail SET UnitPriceDiscount = .1 FROM Sales.SalesOrderDetail d

WHERE EXISTS (SELECT * FROM Sales.SalesOrderHeader h WHERE h.SalesPersonID = 290) 答案:A

43 你有一个名为 Product 的表。你需要为名为 Coho Winery 的卖主的产品价格增加 10%,同时返回产品名称和修改后价格。

A. UPDATE Product

SET Price = Price * 1.10,ProductName = ProductName

WHERE Product.VendorName = 'Coho Winery'

B. UPDATE Product

SET Price = Price * 1.10 OUTPUT inserted.ProductName, deleted.Price WHERE Product.VendorName = 'Coho Winery' C. UPDATE Product

SET Price = Price * 1.10 OUTPUT inserted.ProductName, inserted.Price WHERE Product.VendorName = 'Coho Winery' D. UPDATE Product

SET Price = Price * 1.10,VendorName = 'Coho Winery' OUTPUT inserted.ProductName, inserted.Price

答案:C

44 你有名为 dbo.Products 和 dbo.PriceChange 的两个表。dbo.Products 表包含 10 个产品。单价$20 的 5 条记录价格增加 10%。其他单价$10 的 5 条记录价格增加为 0。你有下列查询:

INSERT dbo.PriceChange (ProductID, Change, ChangeDate)

SELECT ProductID, inPrice - delPrice, SYSDATETIME() FROM (

UPDATE dbo.Products SET Price *= 1.1

OUTPUT inserted.ProductID, inserted.Price, deleted.Price WHERE PriceIncrease = 1 ) p (ProductID, inPrice, delPrice);

你需要预计查询的结果。这个查询将产生哪个结果? A. Five rows are updated in dbo.Products. Five rows are inserted into dbo.PriceChange.

B. Five rows are updated in dbo.Products. No rows are inserted into dbo.PriceChange.

C. No rows are updated in dbo.Products. Five rows are inserted into dbo.PriceChange.

D. No rows are updated in dbo.Products. No rows are inserted into dbo.PriceChange.

第 16 页

答案:A

45 你 有 名 为 MainTable 和 ArchiveTable 的 两 个 表 。 你 需 要 将 MainTable 表 中 超 过 30 的 数 据 移 到ArchiveTable 表。你应使用下面哪个代码段?

A. DELETE FROM MainTable OUTPUT deleted.*

WHERE RecordDate < DATEADD(D,-30,GETDATE())

B. DELETE FROM MainTable OUTPUT DELETED.* INTO ArchiveTable

WHERE RecordDate < DATEADD(D,-30,GETDATE()) C. INSERT INTO ArchiveTable SELECT * FROM MainTable

WHERE RecordDate < DATEADD(D,-30,GETDATE())

D. INSERT INTO ArchiveTable SELECT * FROM MainTable

WHERE RecordDate < DATEADD(D,-30,GETDATE()) DELETE FROM MainTable

答案:B

46 你的任务是创建一个名为 dbo.Widgets 的新表。你需要插入 5 行记录到 dbo.Widgets 表并返回被插入 5条记录的每个 WidgetID。

A. CREATE TABLE dbo.Widgets (WidgetID INT IDENTITY PRIMARY KEY, WidgetName VARCHAR(25));

GO

INSERT dbo.Widgets (WidgetName)

OUTPUT inserted.WidgetID, inserted.WidgetName VALUES

('WidgetOne'),('WidgetTwo'),('WidgetThree'),('WidgetFour'),('WidgetFive');

B. CREATE TABLE dbo.Widgets (

WidgetID INT IDENTITY PRIMARY KEY, WidgetName VARCHAR(25) ); GO

INSERT dbo.Widgets (WidgetName) VALUES

('WidgetOne'),('WidgetTwo'),('WidgetThree'),('WidgetFour'),('WidgetFive'); SELECT SCOPE_IDENTITY();

C. CREATE TABLE dbo.Widgets (

WidgetID UNIQUEIDENTIFIER PRIMARY KEY,WidgetName VARCHAR(25) ); GO

INSERT dbo.Widgets (WidgetName) VALUES

('WidgetOne'),('WidgetTwo'),('WidgetThree'),('WidgetFour'),('WidgetFive'); SELECT SCOPE_IDENTITY();

D. CREATE TABLE dbo.Widgets (

WidgetID UNIQUEIDENTIFIER PRIMARY KEY,WidgetName VARCHAR(25)); GO

INSERT dbo.Widgets (WidgetName)

OUTPUT inserted.WidgetID, inserted.WidgetName VALUES

('WidgetOne'),('WidgetTwo'),('WidgetThree'),('WidgetFour'),('WidgetFive');

答案:A 47 你有下列两个表。

Products

ProductID ProductName VendorID 1 Product1 0 2 Product2 1 3 Product3 1

第 17

4 Product4 0

ProductChanges ProductID ProductName VendorID 1 Product1 1 2 Product2 1 3 NewProduct3 2 5 Product5 1 MERGE Products

USING ProductChanges

ON (Products.ProductID = ProductChanges.ProductID) WHEN MATCHED AND Products.VendorID = 0

THEN DELETE WHEN MATCHED

THEN UPDATE SET Products.ProductName = ProductChanges.ProductName

Products.VendorID = ProductChanges.VendorID;

你执行下列语句。

你需要确认 Products 表中显示的行。将显示哪几行?

A. ProductID ProductName VendorID 2 Product2 1

3 NewProduct3 2

B. ProductID ProductName VendorID 2 Product2 1 3 NewProduct3 2 4 Product4 0

C. ProductID ProductName VendorID 1 Product1 1 2 Product2 1 3 NewProduct3 2

D. ProductID ProductName VendorID 1 Product1 1 2 Product2 1 3 NewProduct3 2 4 Product4 0 5 Product5 1

答案:B

48 你 有 两 个 表 。 名 为 Student.CurrentStudents 的 表 包 含 本 年 度 注 册 的 所 有 学 生 的 姓 名 。 另一 个 名 为Student.NewYearRoster 的表包含下一个年度注册的所有学生的姓名。你的任务是写一个 MERGE 语句:下一年度注册但不在本年度注册的学生姓名插入到 Student.CurrentStudents 表。既在下一年度注册又在本年度 注册的学生更新 Student.CurrentStudents 表中信息。不在下一年度注册的学生姓名从 Student.CurrentStudents表中删除。你应使用哪个 T-SQL 语句?

A. MERGE Student.CurrentStudents AS T USING Student.NewYearRoster AS S

ON S.LastName = T.LastName AND S.FirstName = T.FirstName WHEN MATCHED THEN

第 18 页

UPDATE SET Address = S.Address, Age = S.Age WHEN NOT MATCHED BY TARGET THEN INSERT (LastName, FirstName, Address, Age)

VALUES (S.LastName, S.FirstName, S.Address, S.Age) WHEN NOT MATCHED BY SOURCE THEN DELETE; B. MERGE Student.CurrentStudents AS T USING Student.NewYearRoster AS S

ON S.LastName = T.LastName AND S.FirstName = T.FirstName WHEN MATCHED THEN WHEN NOT MATCHED THEN

INSERT (LastName, FirstName, Address, Age)

VALUES (S.LastName, S.FirstName, S.Address, S.Age) WHEN NOT MATCHED BY SOURCE THEN

UPDATE SET Address = T.Address, Age = T.Age;

C. MERGE Student.CurrentStudents AS T USING Student.NewYearRoster AS S

ON S.LastName = T.LastName AND S.FirstName = T.FirstName

WHEN MATCHED AND NOT T.Address = S.Address OR NOT T.Age = S.Age THEN

UPDATE SET T.Address = S.Address, T.Age = S.Age WHEN NOT MATCHED THEN

INSERT (LastName, FirstName, Address, Age)

VALUES (S.LastName, S.FirstName, S.Address, S.Age) WHEN MATCHED THEN DELETE;

D. MERGE Student.CurrentStudents AS T USING Student.NewYearRoster AS S

ON S.LastName = T.LastName AND S.FirstName = T.FirstName

WHEN MATCHED AND NOT T.Address = S.Address AND NOT T.Age = S.Age THEN

UPDATE SET T.Age = S.Age, T.Address = S.Address WHEN NOT MATCHED BY TARGET THEN INSERT (LastName, FirstName, Address, Age)

VALUES (S.LastName, S.FirstName, S.Address, S.Age) WHEN NOT MATCHED BY SOURCE THEN DELETE; DELETE

答案:A

49 你 用 下 列 T-SQL 语 句 创 建 和 填 充 两 个 表

CREATE TABLE CurrentStudents (LastName VARCHAR(50), FirstName VARCHAR(50),Address VARCHAR(100),Age INT);

INSERT INTO CurrentStudents

VALUES ('Fritz', 'David','181 Kline Street',14) ,('Reese', 'Paul' ,'4429 South Union',14) ,('Brown', 'Jake' ,'5401 Washington Ave',14) ,('Smith', 'Tom' ,'124 Water St',14) ,('Holtz', 'Mary' ,'984 Mass Ct',14) ,('Robbins', 'Jan' ,'4449 Union Ave',14) ,('Larsen', 'Frank' ,'5812 Meadow St',14) ,('Bishop', 'Cathy' ,'14429 Skyhigh Ave',14) ,('Francis', 'Thomas' , '15401 120th St',14)

CREATE TABLE NewYearRoster(LastName VARCHAR(50), FirstName VARCHAR(50), Address VARCHAR(100) ,Age INT);

INSERT INTO NewYearRoster

VALUES ('Fritz', 'David','181 Kline Street',15)

第 19 页

,('Reese', 'Paul','1950 Grandview Place', 15) ,('Adams', 'Wilbur','4231 W. 93rd',15) ,('Adams', 'Norris','100 1st Ave',15)

,('Thomas', 'Paul','18176 Soundview Dr',15) ,('Linderson', 'Danielle','941 W. 37 Ave',15)

,('Moore', 'Joshua','2311 10st Ave','1987 Fifth Ave', ,('Dark', 'Shelby','1987 Fifth Ave',15) ,('Scharp', 'Mary','1902 W. 303rd',15) ,('Morris', 'Walt','100 12st St',15)

你 使 用 下 列 MERGE 语 句 更 新 、 插 入 和 删 除CurrentStudents 表中的行。

MERGE TOP (3) CurrentStudents AS T USING NewYearRoster AS S

ON S.LastName = T.LastName AND S.FirstName = T.FirstName WHEN MATCHED AND NOT (T.Age = S.Age OR T.Address = S.Address) THEN

UPDATE SET Address = S.Address,Age = S.Age WHEN NOT MATCHED BY TARGET THEN

INSERT (LastName, FirstName, Address, Age)

VALUES (S.LastName, S.FirstName, S.Address, S.Age) WHEN NOT MATCHED BY SOURCE THEN DELETE;

你需要确认更新、插入和删除 CurrentStudents 表的整个行数。你应选择总 的行数是哪个?

A. 0 B. 3 C. 6 D. 9 答案:B

50 你将写一个查询来返回 2007 年总收入超过$10,000.00 的产品列表。你需要在查询中插入下列筛选表达式。

SUM([Order Details].UnitPrice * [Order Details].Quantity) > 10000 你应在哪个子句中插入这个表达式?

A. ON B. WHERE C. HAVING D. GROUP BY 答案:C

51 你有一个名为 Sales 的表。你的任务是列出卖给少于 10 个客户的产品。你需要写一个查询完成这个任务。你应使用哪个 T-SQL 语句?

A. SELECT ProductID,COUNT(*) AS CustomerCount FROM Sales GROUP BY ProductID, CustomerID HAVING COUNT(*) < 10;

B. SELECT ProductID,COUNT(DISTINCT CustomerID) AS CustomerCount FROM Sales GROUP BY ProductID

HAVING COUNT(DISTINCT CustomerID) < 10;

C. SELECT ProductID, CustomerID,

COUNT(DISTINCT CustomerID) AS CustomerCount FROM Sales GROUP BY ProductID, CustomerID HAVING COUNT(DISTINCT CustomerID) < 10;

D. SELECT * FROM

(SELECT ProductID, RANK() OVER (ORDER BY CustomerID DESC) AS Rnk FROM Sales) s WHERE s.Rnk <= 10; 答案:B

第 20 页

52 你有名为 Customers 和 Orders 的两个表。因为所有的客户至少有一个订单,你需要为每个客户列出客户姓名及每个客户的订单数。

A. SELECT c.CustomerName,SUM(o.OrderID) AS [OrderCount] FROM Customers c JOIN Orders o

ON c.CustomerID = o.CustomerID GROUP BY c.CustomerName

B. SELECT COUNT(o.OrderId) AS [OrderCount]

FROM CUSTOMERS c JOIN ORDERS o ON c.CUSTOMERID = o.CUSTOMERID

C. SELECT c.CustomerName,COUNT(o.OrderID) AS [OrderCount] FROM Customers c JOIN Orders o ON c.CustomerID = o.CustomerID GROUP BY c.CustomerName HAVING COUNT(o.OrderID) > 1

D. SELECT c.CustomerName,COUNT(o.OrderId) AS [OrderCount] FROM Customers cJOIN Orders o ON c.CustomerId = o.CustomerId GROUP BY c.CustomerName 答案:D

53 你有一个 Products 表。这个表包含名为 Color 的一列。你需要写一个 T-SQL 语句来计算每种产品颜色占所有产品中的百分率。 A. SELECT Color,

COUNT(*) OVER(PARTITION BY Color)/ (COUNT(*) * 1.0) AS PercentColor FROM Products GROUP BY Color;

B. SELECT Color,

COUNT(*) OVER() / (COUNT(*) * 1.0) AS PercentColor/ (COUNT(*) * 1.0) AS PercentColor

FROM Products GROUP BY Color;

C. SELECT Color, (COUNT(*) * 1.0)/ COUNT(*) OVER() AS PercentColor FROM Products GROUP BY Color;

D. SELECT Color

COUNT(*) * 1.0) / COUNT(*) OVER(PARTITION BY Color) AS PercentColor FROM Products GROUP BY Color; 答案:C

54 你有名为 SalesPerson 和 SalesTerritory 的两个表。你需要创建包含 SalesPerson 表和 SalesTerritory 表的笛卡尔积的样例数据。 A. SELECT p.SalesPersonId,t.Name AS [Territory]

FROM Sales.SalesPerson p FULL JOIN Sales.SalesTerritory t ON p.TerritoryId = t.TerritoryId

B. SELECT p.SalesPersonId,t.Name AS [Territory]

FROM Sales.SalesPerson p INNER JOIN Sales.SalesTerritory t ON p.TerritoryId = t.TerritoryId

C. SELECT p.SalesPersonId,t.Name AS [Territory]

FROM Sales.SalesPerson p CROSS JOIN Sales.SalesTerritory t WHERE p.TerritoryId = t.TerritoryId

D. SELECT p.SalesPersonId,t.Name AS [Territory]

第 21 页

FROM Sales.SalesPerson p CROSS JOIN Sales.SalesTerritory t 答案:D

55 你有一个名为 Employees 的表。你想确认每位雇员汇报的直接领导者。你写了下列查询。

SELECT e.EmloyeeName AS [EmployeeName],

s.EmployeeName AS [SuperVisorName] FROM Employees e

你需要确认这个查询返回了所有的雇员和他们各自主管人的列表。你应使用哪个 JOIN 子句完成这个查询?

A. LEFT JOIN Employees s ON e.ReportsTo = s.EmployeeId B. RIGHT JOIN Employees s ON e.ReportsTo = s.EmployeeId C. INNER JOIN Employees s ON e.EmployeeId = s.EmployeeId D. LEFT JOIN Employees s ON e.EmployeeId = s.EmployeeId 答案:A

56 你有一个名为 Subcategories 的表,包含了短袜、女士背心和安全帽的子分类。另外一张表 Products 只包含短袜和女士背心子类的产品。你有下列查询:SELECT s.Name, p.Name AS ProductName FROM Subcategories s OUTER APPLY (SELECT * FROM Products pr

WHERE pr.SubcategoryID = s.SubcategoryID) p WHERE s.Name IS NOT NULL;

你需要预估查询结果。这个查询应生成哪个结果? A. Name ProductName Socks Mountain Bike Socks, Socks Mountain Bike Socks, Socks Racing Socks, M Socks Racing Socks, L Vests Classic Vest, S Vests Classic Vest, M Vests Classic Vest, L

B Name ProductName

Socks Mountain Bike Socks, Socks Mountain Bike Socks, Socks Racing Socks, M Socks Racing Socks, L Vests Classic Vest, S Vests Classic Vest, M Vests Classic Vest, L Helmets NULL

C Name ProductName Socks Mountain Bike Socks, Socks Mountain Bike Socks, Socks Racing Socks, M Socks Racing Socks, L Vests Classic Vest, S Vests Classic Vest, M Vests Classic Vest, L Helmets NULL NULL NULL

第 22

D Name ProductName Socks Mountain Bike Socks, Socks Mountain Bike Socks, Socks Racing Socks, M Socks Racing Socks, L Vests Classic Vest, S Vests Classic Vest, M Vests Classic Vest, L NULL Mountain Bike Socks, NULL Mountain Bike Socks, NULL Racing Socks, M NULL Racing Socks, L NULL Classic Vest, S NULL Classic Vest, M NULL Classic Vest, L Helmets NULL NULL NULL 答案:B

57 你有名为 dbo.CurrentProducts 和 dbo.ArchiveProducts 的两个表。你有下列查询: SELECT ProductID, Name FROM dbo.CurrentProducts UNION ALL SELECT ProductID, Name FROM dbo.ArchiveProducts;

你需要预估这个查询将生成的产品列表。这个查询应返回哪个产品列表

A. Products that appear in dbo.CurrentProducts or dbo.ArchiveProducts but not in both. B. Products that have a matching ProductID and Name in dbo.CurrentProducts or dbo.ArchiveProducts.

C. Products that appear in dbo.CurrentProducts or dbo.ArchiveProducts. Products that appear in both tables are listed only once.

D. Products that appear in dbo.CurrentProducts or dbo.ArchiveProducts. Products that appear in both tables are listed multiple times.

(出现 dbo.CurrentProducts 和 dbo.ArchiveProducts 的两个表中的产品,并且两表都有的产品出现多次。) 答案:D

58 你有名为 Products 和 NewProducts 的两个结构相同的表。你有下列查询( 你需要选择合适的 T-SQL

01 SELECT Product, Description 02 FROM dbo.Products 03

04 SELECT Product, Description 05 FROM dbo.NewProducts

运算操作符显示两表中都有的行。你应该在 03 行插入哪个操作运算符? A. UNION B. EXCEPT C. UNION ALL D. INTERSECT 答案:D

59 你的任务是创建一个表,该表包含必须存储精确到 10 微秒的当前时间的一列。你需要为列定义设置默认值为系统函数。你应使用哪个系统函数?] A. DATEADD B. GETUTCDATE

C. SYSDATETIME D. CURRENT_TIMESTAMP

第 23 页

答案:C

60 你需要对 1.75 四舍五入到最接近的整数。你应使用哪个代码段? A. Select ROUND(1.75,0) B. Select ROUND(1.75,2) C. Select ROUND(1.75,1.0) D. Select ROUND(1.75,2.0) 答案:A

61 你有一个名为 TelephoneNumber 字段来存储 varchar(20)数字。你需要写一个返回电话号码前三个字符的查询。你应使用哪个表达式? A. LEFT(TelephoneNumber, 3) B. SUBSTRING(TelephoneNumber, 3, 3) C. SUBSTRING (TelephoneNumber, 3, 1)

D. CHARINDEX('[0-9][0-9][0-9]', TelephoneNumber, 3) 答案:A

62 你 是 位 于 西 雅 图 的 数 据 库 开 发 人 员 , 你 有 一 个 与 西 雅 图 不 同 时 区 的 墨 尔 本 客 户 端 。 你 准 备 使 用datetimeoffset 数据类型存储含西雅图时区的数据。你需要显示墨尔本的时间。你应使用哪个函数?

A. CONVERT B. DATEADD C. SWITCHOFFSET D. TODATETIMEOFFSET 答案:C

63 你有名为 ProductCategory 和 ProductSubCategory 的两个表。你需要写一个查询,返回包含超过十个子类的产品分类列表。你应使用哪个查询? A. SELECT [Name] FROM ProductSubCategory

WHERE ProductCategoryID IN ( SELECT ProductCategoryID

FROM ProductCategory GROUP BY [Name] HAVING COUNT(*) > 10

B. SELECT [Name] FROM ProductSubCategory

WHERE ProductCategoryID NOT IN (SELECT ProductCategoryID

FROM ProductCategory) GROUP BY [Name] HAVING COUNT(*) > 10

C. SELECT [Name] FROM Product Category c WHERE EXISTS (SELECT ProductCategoryID

FROM ProductSubCategory WHERE ProductCategoryID = c.ProductCategoryID GROUP BY ProductCategoryID HAVING COUNT(*) > 10)

D. SELECT [Name] FROM Product Category c

WHERE NOT EXISTS (SELECT ProductCategoryID

FROM ProductSubCategory WHERE ProductCategoryID = c.ProductCategoryID GROUP BY ProductCategoryID HAVING COUNT(*) > 10) 答案:C

64 你的数据库包含无数订单的销售信息。你需要确认某个订单总量超过 10,000 的最高平均售价的订单。 你应使用哪个查询?

A. SELECT TOP (20) o.SalesOrderId,o.OrderDate,o.Total,

SUM(od.QTY * od.UnitPrice) / SUM(od.Qty) AS [AvgUnitPrice] FROM Sales.SalesOrderHeader o JOIN SALES.SalesOrderDetail od ON o.SalesOrderId = od.SalesOrderId WHERE o.Total> 10000

GROUP BY o.SalesOrderId, o.OrderDate, o.Total ORDER BY AvgUnitPrice;

B. SELECT TOP (20) o.SalesOrderId,o.OrderDate,o.Total, (SELECT SUM(od.Qty * od.UnitPrice) / SUM(od.QTY)

FROM Sales.SalesOrderDetail od WHERE o.SalesOrderId = od.SalesOrderId) AS [AvgUnitPrice] FROM Sales.SalesOrderHeader o

第 24 页

WHERE o.Total> 10000 ORDER BY AvgUnitPrice DESC;

C. SELECT TOP (20) o.SalesOrderId,o.OrderDate,o.Total,

SUM(od.Qty * od.UnitPrice) / SUM(od.Qty) AS [AvgUnitPrice] FROM Sales.SalesOrderHeader o JOIN Sales.SalesOrderDetail od ON o.SalesOrderId = od.SalesOrderId WHERE o.Total> 10000

GROUP BY o.SalesOrderId, o.OrderDate, o.Total ORDER BY Total DESC;

D. SELECT TOP (20) o.SalesOrderId, o.OrderDate,o.Total, (SELECT SUM(od.Qty * od.UnitPrice) / SUM(od.Qty) FROM Sales.SalesOrderDetail od

WHERE o.SalesOrderId = od.SalesOrderId) AS [AvgUnitPrice] FROM Sales.SalesOrderHeader o WHERE o.Total > 10000 ORDER BY o.Total DESC, AvgUnitPrice; 答案:B

65 你的公司数据库中存储了卖主和价格的信息。数据库中所有数据项都有一个价格表价格。你需要给卖 主 Fabrikam 提供所有产品的价目表价格增加 20.00。你应使用哪个查询?

A. UPDATE Production.Product SET ListPrice = ListPrice + 20.00

WHERE NOT EXISTS (SELECT VendorId FROM Purchasing.Vendor); WHERE VendorName = 'Fabrikam');

B. UPDATE Production.Product SET ListPrice = ListPrice + 20.00

WHERE VendorId NOT IN (SELECT VendorId FROM Purchasing.Vendor); WHERE VendorName = 'Fabrikam');

C. UPDATE Production.Product SET ListPrice = ListPrice + 20.00 WHERE EXISTS (SELECT VendorId FROM Purchasing.Vendor WHERE VendorName = 'Fabrikam');

D. UPDATE Production.Product SET ListPrice = ListPrice + 20.00 WHERE VendorId IN (SELECT VendorId FROM Purchasing.Vendor WHERE VendorName = 'Fabrikam'); 答案:D

66 你有名为 Customer 和 SalesOrder 的两个表。你需要确认那些还没有任何购买和订购总量少于 100 的 所有客户。你应使用哪个查询? 答案:

A.select * from Customer

WHERE 100 > ALL (SELECT OrderTotal FROM SalesOrder WHERE Customer.CustomerID = SalesOrder.CustomerID)

B. SELECT * FROM Customer

WHERE 100 > SOME (SELECT OrderTotal from SalesOrder WHERE Customer.CustomerID = SalesOrder.CustomerID)

C. SELECT * FROM Customer

WHERE 100 > (SELECT MAX(OrderTotal) FROM SalesOrder WHERE Customer.CustomerID = SalesOrder.CustomerID)

D. SELECT * FROM Customer

第 25 页

where EXISTS (SELECT SalesOrder.CustomerID FROM SalesOrder WHERE Customer.CustomerID = SalesOrder.CustomerID AND SalesOrder.OrderTotal <= 100)

Answer: A

67 有名为 Customer 和 SalesOrder 的两个表。在 Customer 表中有 1000 个客户,其中 900 个客户在 SalesOrder 表中有订单。你执行下列查询来列出至少有一个销售数据的所有客户。

SELECT * FROM CustomerWHERE Customer.CustomerID IN (SELECT Customer.CustomerID FROM SalesOrder) 这个查询返回哪个 结果?

A.无结果 B.一条警告消息 C. Customer 表中的 1000 行记录

D. The 900 rows in the Customer table with matching rows in the SalesOrder table 答案:C

68 Customer 表中有下列行: CustomerId Status ------------- ----------- 1 Active 2 Active 3 Inactive 4 NULL 5 Dormant 6 Dormant

你写下列查询返回他们的 Status 为 NULL 或者?Dormant?的所有客户。 SELECT * FROM Customer

WHERE Status NOT IN (NULL, 'Dormant') 你需要确认查询结果。你预期是哪个结果? A. CustomerId Status

------------ -----------

B. CustomerId Status 1 Active 2 Active 3 Inactive

C、CustomerId Status

1 Active 2 Active 3 Inactive 4 NULL

D、CustomerId Status

1 Active 2 Active 3 Inactive 4 NULL 5 Dormant 6 Dormant 答案:A

第 26

69 你有一个名为 Employee 的表。你通过插入每个雇员的主管的 EmployeeID 作为 ReportsTo 列来记录你 公司组织的等级制度。你需要写一个生成雇员和他们主管列表的递归查询。这个查询必须包括该雇员在等 级制度中的等级。你写了下面的代码段。(包含的行号只用于参照) 01 WITH EmployeeList (EmployeeID, FullName, ManagerName, Level) 02 AS ( 03 04 )

05 SELECT EmployeeID,

FullName, ManagerName, Level 06 FROM EmployeeList;

你应该在 03 行插入哪个代码?

A. SELECT EmployeeID,FullName,'' AS [ReportsTo],1 AS [Level] FROM Employee WHERE ReportsTo IS NULL UNION ALL

SELECT emp.EmployeeID,emp.FullNName,mgr.FullName,1 + 1 AS [Level] FROM Employee emp JOIN Employee mgr ON emp.ReportsTo = mgr.EmployeeID

B. SELECT EmployeeID,FullName,'' AS [ReportsTo],1 AS [Level] FROM Employee WHERE ReportsTo IS NULL UNION ALL

SELECT emp.EmployeeID,emp.FullName,mgr.FullName,mgr.Level + 1 FROM EmployeeList mgr JOIN Employee emp ON emp.ReportsTo = mgr.EmployeeId

C. SELECT EmployeeID,FullName,'' AS [Reports To],1 AS [Level] FROM Employee UNION ALL

SELECT emp.EmployeeID,emp.FullName,mgr.FullName,1 + 1 AS [Level] FROM Employee emp LEFT JOIN Employee mgr ON emp.ReportsTo = mgr.EmployeeID

D. SELECT EmployeeID,FullName,'' AS [ReportsTo],1 AS [Level] FROM Employee UNION ALL

SELECT emp.EmployeeID,emp.FullName,mgr.FullName,mgr.Level + 1 FROM EmployeeList mgr JOIN Employee emp ON emp.ReportsTo = mgr.EmployeeID 答案:B

70 你需要确定执行这个代码段的结果。 ]DECLARE @RangeStart INT = 0; DECLARE @RangeEnd INT = 10000; DECLARE @RangeStep INT = 1; WITH NumberRange(ItemValue) AS (SELECT ItemValue

FROM (SELECT @RangeStart AS ItemValue) AS t UNION ALL

第 27 页

SELECT ItemValue + @RangeStep FROM NumberRange

WHERE ItemValue < @RangeEnd) SELECT ItemValue FROM NumberRange

OPTION (MAXRECURSION 100) 将返回哪个结果?

A. 101 rows will be returned with no error. B. 10,001 rows will be returned with no error.

C. 101 rows will be returned with a maximum recursion error. (返回 101 行记录并有最大递归错误)

D. 10,001 rows will be returned with a maximum recursion error. 答案:C

71 你需要实现公用表表达式。你应使用哪个代码段? A. CREATE VIEW SalesByYear AS

SELECT Year,Region,SUM(OrderTotal) FROM Orders GROUP BY Year, Region; GO

SELECT Year,Region,Total FROM SalesByYear;

B. WITH SalesByYear(Year,Region,Total)

AS (SELECT Year,Region,SUM(OrderTotal)FROM Orders GROUP BY Year,Region)

SELECT Year,Region,TotalFROM SalesByYear;

C. SELECT Year,Region,Total

FROM (SELECT Year,Region,SUM(OrderTotal) AS Total FROM Orders GROUP BY Year, Region) AS [SalesByYear];

D. SELECT DISTINCT Year,Region,

(SELECT SUM(OrderTotal) FROM Orders SalesByYear WHERE Orders.Year = SalesByYear.YEAR

AND Orders.Region = SalesByYear.Region) AS [Total] FROM Orders; 答案:B

72 你的任务是分析下列查询的封锁行为:

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE WITH Customers AS (SELECT * FROM Customer ),

SalesTotal AS ( SELECT CustomerId, SUM(OrderTotal) AS AllOrderTotal FROM SalesOrder)

SELECT CustomerId, AllOrderTotal FROM SalesTotal

WHERE AllOrderTotal > 10000.00;

你需要确定其他使用客户表的查询是否被这一查询阻塞。 你也需要确定这个查询是否会被其他正使用客户表的查询阻塞。你预期会有什么行为? A、此查询将阻塞其他查询,其他查询将阻塞此查询

第 28 页

B、此查询将阻塞其他查询,其他查询不会阻塞此查询 C、此查询不会阻塞其他查询,其他查询将阻塞此查询 D、此查询不会阻塞其他查询,其他查询不会阻塞此查询

答案:D

73 你使用下列语句创建和填充一个名为 SiteNavigation 的数据表。

CREATE TABLE SiteNavigation(

SiteNavigationId INT PRIMARY KEY,Linktext VARCHAR(10), LinkUrl VARCHAR(40),

ParentSiteNavigationId INT NULL REFERENCES SiteNavigation(SiteNavigationId))

INSERT INTO SiteNavigation

VALUES (1,'First','http://first',NULL) ,(2,'Second','http://second',1) ,(3,'Third','http://third',1) ,(4,'Fourth','http://fourth',2) ,(5,'Fifth','http://fifth',2) ,(6,'Sixth','http://sixth',2)

,(7,'Seventh','http://seventh',6) ,(8,'Eighth','http://eighth',7)

你的任务是编写一个查询,列出 引用从根节点的两个层次的所有网站。 LinkText LinkUrl DistanceFromRoot ---------- -------------------------- ---------------- Fourth http://fourth 2 Fifth http://fifth 2 Sixth http://sixth 2 Seventh http://seventh 3 Eighth http://eighth 4 你写了下列查询

WITH DisplayHierarchy

AS (SELECT LinkText, LinkUrl,

SiteNavigationId, ParentSiteNavigationId,0 AS DistanceFromRoot FROM SiteNavigation WHERE ParentSiteNavigationId IS NULL UNION ALL

SELECT SiteNavigation.LinkText, SiteNavigation.LinkUrl,

SiteNavigation.SiteNavigationId, SiteNavigation.ParentSiteNavigationId, dh.DistanceFromRoot + 1 AS DistanceFromRoot

FROM SiteNavigation INNER JOIN DisplayHierarchy dh

ON SiteNavigation.ParentSiteNavigationId = dh.SiteNavigationId)

SELECT LinkText, LinkUrl, DistanceFromRoot FROM DisplayHierarchy

你需要对这个查询附上一个 WHERE 子句。 你应使用哪个子句? A. WHERE DistanceFromRoot =2 B. WHERE DistanceFromRoot < 2 C. WHERE DistanceFromRoot >= 2 D. WHERE DistanceFromRoot IN (2,3) 答案:C

7 4 . 你 有 两 个 视 图 S a l e s . S a l e s S u m m a r y O v e r a l l 和 S a l e s . C u s t o m e r A n d S a l e s S u m m a r y , 它 们的 定 义 如 下 : C R E A T E V I E W S a l e s . S a l e s S u m

第 29 页

m a r y O v e r a l l A S

S E L E C T C u s t o m e r I d , S U M ( S a l e s T o t a l ) A S O v e r a l l T o t a l F R O M S a l e s . S a l e s O r d e r G R O U P B Y C u s t o m e r I d G O

C R E A T E V I E W S a l e s . C u s t o m e r A n d S a l e s S u m m a r y A S

S E L E C T C u s t o m e r . N a m e , S a l e s S u m m a r y O v e r a l l .

O v e r a l l T o t a l , ( S E L E C T A V G ( O v e r a l l T o t a l ) F R O M S a l e s . S a l e s S u m m a r y O v e r a l l

W H E R E S a l e s S u m m a r y O v e r a l l . C u s t o m e r I d =

C u s t o m e r . C u s t o m e r I d ) A S a v g O v e r a l l T o t a l , ( S E L E C T M A X ( O v e r a l l T o t a l ) F R O M S a l e s . S a l e s S u m m a r y O v e r a l l W H E R E S a l e s S u m m a r y O v e r a l l . C u s t o m e r I d = C u s t o m e r . C u s t o m e r I d ) A S m a x O v e r a l l T o t a l , F R O M S a l e s . C u s t o m e r

L E F T O U T E R J O I N S a l e s . S a l e s . S a l e s S u m m a r y O v e r a l l

O N S a l e s S u m m a r y B y Y e a r . C u s t o m e r I d = C u s t o m e r . C u s t o m e r I d G O

你 的 任 务 是 修 改 S a l e s . C u s t o m e r A n d S a l e s S u m m a r y 视 图 ,去 掉 对 其 他 视 图 的 引 用 。为 了 完成 此 任 务 ,你 必 须 在 S a l e s . C u s t o m e r A n d S a l e s S u m m a r y 对 象 的 修 改 版 本 中 使 用 哪 个 特 性 ? A . T a b l e v a r i a b l e s ( 表 变 量 )

B . T e m p o r a r y t a b l e s ( 临 时 表 )

C . U s e r - d e f i n e d t a b l e t y p e s ( 用 户 自 定 义 表 类 型 ) D . C o m m o n t a b l e e x p r e s s i o n s ( 公 用 表 表 达 式 C T E ) A n s w e r : D

75 你需要编写一个查询,允许你对每个销售人员总销售额分成四组进行排名,其中排名结果前 25%为第1 组,下一个 25%为第 2 组,再下一个 25%为第 3 组,最低的 25%在第 4 组中。你应该使用哪个 T-SQL 语句? A. NTILE(1) B. NTILE(4) C. NTILE(25) D. NTILE(100) 答案:B

使用排名函数返回在结果集分区的连续顺序编号,每76 你需要编写一个查询,

个分区的第一行从1 开始。你应该使用哪个 T-SQL 语句?

A. RANK B. NTILE(10) C. DENSE_RANK D. ROW_NUMBER 答案:D

第 30 页

77 你有一个名为 ProductCounts 的表,包含 1000 个产品,以及已为每个产品销售的联合批号。你需要编写一个查询,显示已售出最多的 5%的产品。你应该使用哪个 T-SQL 代码段? A. WITH Percentages AS (

SELECT *, NTILE(5) OVER (ORDER BY UnitsSold) AS groupingColumn FROM SELECT * ProductCounts) select * FROM percentages WHERE groupingColumn =1;

B. WITH Percentages AS (

SELECT *, NTILE(5) OVER (ORDER BY UnitsSold) AS groupingColumn FROM ProductCounts )

SELECT * FROM Percentages WHERE groupingColumn = 5;

C. WITH Percentages AS (

SELECT *, NTILE(20) OVER (ORDER BY UnitsSold) AS groupingColumn FROM ProductCounts)

SELECT * FROM Percentages WHERE groupingColumn = 1;

D. WITH Percentages AS (

SELECT *, NTILE(20) OVER (ORDER BY UnitsSold) AS groupingColumn FROM ProductCounts)

SELECT * FROM Percentages WHERE groupingColumn = 20; 答案:D

78 你为国际慈善组织工作。你正在编写一个查询来列出最高 100 个不同的的

捐赠数额。你写了下面的代码段(包括的行号仅作为参考):

01 SELECT *

02 FROM (SELECT Customer.CustomerID, SUM(TotalDue) AS TotalGiven, 03

04 FROM Customer 05 JOIN SalesOrder

06 ON Customer.CustomerID = SalesOrder.CustomerID

07 GROUP BY Customer.CustomerID) AS DonationsToFilter 08 WHERE FilterCriteria <= 100

你需要在第 03 行插入一个 T-SQL 子句完成这个查询。你应该插入哪个 T-SQL 子句?A. RANK() OVER (ORDER BY SUM(TotalDue) DESC) AS FilterCriteria B. NTILE(100) OVER (ORDER BY SUM(TotalDue) DESC) AS FilterCriteria

C. ROW_NUMBER() OVER (ORDER BY SUM(TotalDue) DESC) AS FilterCriteria D. DENSE_RANK() OVER (ORDER BY SUM(TotalDue) DESC) AS FilterCriteria 答案:D

7 9 . 你 的 数 据 库 服 务 器 是 四 核 处 理 器 , 现 在 要 执 行 复 杂 的 查 询 语 句 产 生 报 表 。 你 需 要 强制 查 询 仅 仅 使 用 一 个 处 理 器 核 , 不 影 响 其 他 查 询 。 你 应 该 使 用 哪 个 选 项 ? A . O P T I O N ( F A S T 1 )

第 31 页

B . O P T I O N ( M A X D O P 1 ) C . O P T I O N ( R E C O M P I L E )

D . O P T I O N ( M A X R E C U R S I O N 1 ) A n s w e r : B

8 0 . 你 发 现 对 于 特 定 的 参 数 值 下 面 的 查 询 有 时 候 运 行 得 很 快 , 有 时 候 运 行 得 很 慢 。 你 还发 现 A d d r e s s 表 中 9 0 % 的 行 有 相 同 的 c i t y 值 。

S E L E C T A d d r e s s I d , A d d r e s s L i n e 1 , C i t y , P o s t a l C o d e F R O M P e r s o n . A d d r e s s

W H E R E C i t y = @ c i t y _ n a m e

A N D P o s t a l C o d e = @ p o s t a l _ c o d e

你 需 要 使 用 一 个 查 询 提 示 , 对 于 特 定 的 参 数 值 , 查 询 执 行 时 时 间 上 将 保 持 一 致 性 。 你 应 该使 用 什 么 提 示 ? A . F A S T B . M A X D O P

C . O P T I M I Z E F O R D . P A R A M E T E R I Z A T I O N F O R C E D A n s w e r : C

8 1 . 你 的 任 务 是 写 一 个 要 选 择 1 0 0 万 行 的 查 询 语 句 , 你 必 须 要 优 化 这 个 查 询 语 句 , 尽 可 能快 地 返 回 最 前 面 的 5 0 行 。 你 应 该 使 用 什 么 查 询 提 示 ? A . F A S T 5 0 B . M A X D O P 5 0 C . O P T I M I Z E F O R @ R O W S = 5 0

D . T A B L E H I N T ( t a b l e , I N D E X ( 5 0 ) ) A n s w e r : A

8 2 . 你 有 以 下 的 查 询 :

S E L E C T E m p l o y e e I D , M a n a g e r I D , L o g i n I D F R O M d b o . E m p l o y e e s

W H E R E M a n a g e r I D = 1 5 0 0 O R D E R B Y M a n a g e r I D ;

你 的 任 务 是 强 制 这 个 查 询 使 用 如 图 所 示 的 执 行 计 划 ,你 需 要 使 用 合 适 的 提 示 来 完 成 这 个任 务 , 你 应 该 使 用 什 么 提 示 ?

A .I N D E X ( 0 ) B . I N D E X ( 1 )

C . I N D E X ( P K _ E m p l o y e e s ) D . I N D E X ( I X _ E m p l o y e e s ) A n s w e r : D

8 3 . 你 工 作 的 S Q L S e r v e r 2 0 0 8 服 务 器 实 例 配 置 的 是 L a t i n 1 _ G e n e r a l _

第 32 页

C S _ A S 排 序 规 则 , 数 据库 创 建 语 句 如 下 :.

CREATE DATABASE TestDB COLLATE Estonian_CS_AS; GO

USE TestDB; GO

CREATE TABLE TestPermTab (PrimaryKey int PRIMARY KEY, Col1 nchar ); 以 下 的 代 码 使 用 了 一 个 临 时 表 # T e s t T e m p T a b u s e T e s t D B ; G O

CREATE TABLE #TestTempTab (PrimaryKey int PRIMARY KEY, Col1 nchar );

INSERT INTO #TestTempTab SELECT * FROM TestPermTab;

你 需 要 辨 别 出 临 时 表 # T e s t T e m p T a b 上 使 用 的 是 哪 种 排 序 规 则 ? A . 没 有 排 序 规 则 B . E s t o n i a n _ C S _ A S C . L a t i n 1 _ G e n e r a l _ C S _ A S

D . 由 服 务 器 本 地 W i n d o w s 系 统 选 择 的 排 序 规 则 A n s w e r : C

8 4 . 你 有 一 个 表 P e r s o n , 其 中 有 一 个 n v a r c h a r 型 的 列 S u r n a m e 。当 前 P e r s o n 表 在 P e r s o n I D 上 有一 个 聚 集 索 引 。S u r n a m e 含 有 R u s s i a n 和 J a p a n e s e 字 符 。下 面 的 代 码 片 段 用 来 检 索 S u r n a m e 。 I F @ l a n g = ' R u s s i a n '

S E L E C T P e r s o n I D , S u r n a m e F R O M P e r s o n

W H E R E S u r n a m e = @ S e a r c h N a m e C O L L A T E C y r i l l i c _ G e n e r a l _ C I _ A S

i f @ l a n g = ' J a p a n e s e '

S E L E C T P e r s o n I D , S u r n a m e F R O M P e r s o n

W H E R E S u r n a m e = @ S e a r c h N a m e C O L L A T E J a p a n e s e _ C I _ A S _ K S 对 于 上 面 的 查 询 , 你 需 要 使 S Q L S e r v e r 能 够 执 行 索 引 检 索 , 你 应 该 怎 么 做 ?

A . 在 S u r n a m e 列 上 创 建 索 引

B . 为 每 个 排 序 规 则 创 建 计 算 列 。 在 S u r n a m e 列 上 创 建 索 引 。 C . 为 每 个 排 序 规 则 创 建 计 算 列 。 在 计 算 列 上 创 建 索 引 。

D . 为 每 个 排 序 规 则 创 建 新 列 , 并 且 从 S u r n a m e 拷 贝 数 据 。 为 每 个 新 列 创 建 索 引 。 A n s w e r : C

8 5 . 你 有 一 个 应 用 程 序 ,用 户 遍 布 世 界 各 地 。所 有 的 用 户 都 使 用 W i n d o w s 身 份 验 证 连 接 。对 用 户 来 讲 , 你 需 要 确 保 系 统 和 用 户 自 定 义 的 错 误 信 息 是 用 本 地 化 的 语 言 显 示 。 你 应 该如 何 做 ? 选 择 两 项 。 A . 使 用 @ @ L A N G U A G E 函 数 。 B . 对 于 每 个 登 录 使 用 默 认 语 言 。

C. 对 s p _ a d d m e s s a g e 使 用 @ l a n g 参 数

D . 对 s p _ c o n f i g u r e 使 用 \l a n g u a g e \选 项 。 A n s w e r : B C

8 6 . 你 的 服 务 器 排 序 规 则 是 S Q L _ L a t i n 1 _ G e n e r a l _ C P 1 _ C I _ A S 。 你 的 数 据 库 C o n t o s o 设 置 的 排 序 规 则 是 S Q L _ S c a n d i n a v i a n _ C p 8 5 0 _ C

第 33 页

I _ A S 。 你 使 用 下 面 的语 句 创 建 了 一 个 临 时 表 # P e r s o n , 并 把 C o n t o s o 数 据 库 中 d b o . P e r s o n 表 的 数 据 填 充 到# P e r s o n 。 u s e M y D B ;

C R E A T E T A B L E # P e r s o n ( L a s t N a m e n c h a r ( 1 2 8 ) ) ;

I N S E R T I N T O # P e r s o n S E L E C T L a s t N a m e F R O M d b o . P e r s o n ; 然 后 你 运 行 以 下 的 命 令 :

S E L E C T * F R O M d b o . P e r s o n a J O I N # P e r s o n b O N a . L a s t N a m e = b . L a s t N a m e ; 这 个 命 令 返 回 以 下 的 错 误 :

不 能 解 决 排 序 规 则 \_ L a t i n 1 _ G e n e r a l _ C P 1 _ C I _ A S \和 \_ S c a n d i n a v i a n _ C p 8 5 0 _ C I _ A S \之 间 的 等 于 操 作 冲 突

你 需 要 解 决 这 个 排 序 规 则 冲 突 。 你 应 该 使 用 哪 个 T - S Q L 语 句 ? A . C R E A T E T A B L E # P e r s o n ( L a s t N a m e n v a r c h a r ( 1 2 8 ) S P A R S E ) ; B . C R E A T E T A B L E # P e r s o n ( L a s t N a m e n v a r c h a r ( 1 2 8 ) C O L L A T E d a t a b a s e _ d e f a u l t ) ;

C . C R E A T E T A B L E # P e r s o n ( L a s t N a m e n v a r c h a r ( 1 2 8 ) C O L L A T E S Q L _ L a t i n 1 _ G e n e r a l _ C P 1 _ C I _ A S ) ;

D . C R E A T E T A B L E t m p P e r s o n ( L a s t N a m e n v a r c h a r ( 1 2 8 )

C O L L A T E S Q L _ L a t i n 1 _ G e n e r a l _ C P 1 _ C I _ A S ) ; A n s w e r : B

8 7 . 你 有 一 个 S Q L S e r v e r 2 0 0 8 数 据 库 。 你 还 没 有 安 装 M A P I 客 户 端 。 你 需 要 从 存 储 过 程中 发 送 邮 件 。 你 应 该 使 用 哪 个 系 统 存 储 过 程 ?

A . x p _ s e n d m a i l B . x p _ s t a r t m a i l C . s p _ s e n d _ d b m a i l D . s y s m a i l _ s t a r t _ s p A n s w e r : C

8 8 . 你 使 用 数 据 库 邮 件 来 发 送 邮 件 , 但 是 有 一 个 公 司 员 工 并 没 有 收 到 邮 件 。 你 需 要 知 道数 据 库 邮 件 发 送 的 邮 件 是 否 发 送 成 功 , 你 应 该 使 用 m s d b 数 据 库 的 哪 个 对 象 ? A . m s d b . d b o . s y s m a i l _ e v e n t _ l o g B . m s d b . d b o . s y s m a i l _ s e n t i t e m s C . m s d b . d b o . s y s m a i l _ u n s e n t i t e m s D . m s d b . d b o . s y s m a i l _ f a i l e d i t e m s A n s w e r : D

8 9 . 你 任 务 的 是 删 除 大 量 的 已 经 发 送 的 数 据 库 邮 件 。 你 需 要 删 除 所 有 发 送 超 过 一 个 月 的 邮 件 。 你 应 该 运 行 哪 个 T - S Q L 语 句 ? A . D E C L A R E @ O n e M o n t h A g o d a t e t i m e = D A T E A D D ( m m , - 1 , G E T D A T E ( ) ) E X E C m s d b . d b o . s y s m a i l _ d e l e t e _ l o g _ s p @ O n e M o n t h A g o

B . D E C L A R E @ O n e M o n t h A g o d a t e t i m e = D A T E A D D ( m m , - 1 , G E T D A T E ( ) ) E X E C m s d b . d b o . s y s m a i l _ d e l e t e _ m a i l i t e m s _ s p @ O n e M o n t h A g o

C . D E C L A R E @ O n e M o n t h A g o d a t e t i m e = D A T E A D D ( m m , - 1 , G E T D A T E ( ) ) E X E C m s d b . d b o . s y s m a i l _ d e l e t e _ l o g _ s p @ O n e M o n t h A g o , ' S u c c e s s '

D . D E C L A R E @ O n e M o n t h A g o d a t e t i m e = D A T E A D D ( m m , - 1 , G E T D A T E ( ) ) E X E C m s d b . d b o . s y s m a i l _ d e l e

第 34 页

t e _ m a i l i t e m s _ s p @ O n e M o n t h A g o , ' S e n t ' A n s w e r : D

9 0 . 你 有 一 个 表 B o o k s , 表 里 有 B o o k T i t l e 和 D e s c r i p t i o n 列 。 在 这 两 列 上 有 全 文 索 引 。 你需 要 返 回 所 有 B o o k s 表 中 在 这 两 列 上 含 有 单 词 ' c o m p u t e r ' 的 行 。 你 应 该 使 用 什 么 代 码 段 ?

A . S E L E C T * F R O M B o o k s W H E R E F R E E T E X T ( * , ' c o m p u t e r ' ) B . S E L E C T * F R O M B o o k s

W H E R E B o o k T i t l e L I K E ' % c o m p u t e r % ' C . S E L E C T * F R O M B o o k s

W H E R E B o o k T i t l e = ' % c o m p u t e r % ' O R D e s c r i p t i o n = ' % c o m p u t e r % ' D . S E L E C T * F R O M B o o k s

W H E R E F R E E T E X T ( B o o k T i t l e , ' c o m p u t e r ' ) A n s w e r : A

9 1 . 为 了 忽 略 特 定 的 词 语 , 你 需 要 配 置 全 文 检 索 , 你 应 该 使 用 全 文 检 索 哪 个 组 件 ?

A . i F i l t e r B . S t o p l i s t ( 非 索 引 字 表 ) C . T h e s a u r u s f i l e D . W o r d b r e a k e r s A n s w e r : B

9 2 . 贵 公 司 制 造 和 销 售 自 行 车 部 件 。I n v e n t o r y( 库 存 )表 里 有 P a r t N a m e 和 D e s c r i p t i o n 列 。I n v e n t o r y 表 上 有 全 文 目 录 。 你 使 用 全 文 字 典 来 扩 展 常 见 的 自 行 车 术 语 , 需 要 写 一 个 全 文查 询 , 不 仅 要 返 回 精 确 匹 配 的 单 词 , 也 要 返 回 意 思 相 同 的 单 词 。 A . S E L E C T * F R O M I n e n t o r y

W H E R E F R E E T E X T ( * , ' c y c l e ' ) ) B . S E L E C T * F R O M I n v e n t o r y

W H E R E C O N T A I N S ( * , ' c y c l e ' ) C . S E L E C T * F R O M I n v e n t o r y

W H E R E D e s c r i p t i o n L I K E ' % c y c l e % ' D . S E L E C T * F R O M I n v e n t o r y

W H E R E C O N T A I N S ( * , ' F o r m s O f ( I n f l e c t i o n a l , c y c l e ) ' ) A n s w e r : A

注 : F R E E T E X T : 匹 配 精 确 的 单 词 、 同 义 词 、 派 生 词 。

9 3 . 贵 公 司 生 产 和 销 售 保 龄 球 。 在 P r o d c u t s ( 产 品 ) 表 上 有 一 个 全 文 目 录 f t C a t a l o g , 全文 目 录 上 有 一 个 全 文 索 引 f t I n v e n t o r y 。 市 场 部 刚 刚 向 I n v e n t o r y ( 库 存 ) 表 插 入 了 一 个 新的 保 龄 球 , 你 注 意 到 仅 仅 这 个 新 的 保 龄 球 没 有 包 含 在 全 文 检 索 的 结 果 里 , 你 已 确 信 在P r o d u c t s 表 存 在 此 行 。 你 需 要 在 最 短 的 时 间 内 更 新 全 文 目 录 , 你 应 该 使 用 哪 个 T - S Q L 语句 ?

A. ALTER FULLTEXT INDEX ON ftInventory START FULL POPULATION B. ALTER FULLTEXT INDEX ON ftInventory RESUME POPULATION

C. ALTER FULLTEXT INDEX ON ftInventory START UPDATE POPULATION D. ALTER FULLTEXT CATALOG ftCatalog REBUILD A n s w e r : C

9 4 . 你 一 个 服 务 器 C o n t o s o ,服 务 器 里 有 多 个 数 据 库 。你 的 任 务 是 写 一 个 命 令 行 脚 本 来 决定 服 务 器 中 哪 个 数 据 库 超 过 了 1 0 0 G B 。 你 从 S Q L S e r v e r 管 理 器 打 开 命 令 行 , 创 建 了 以 下两 个 变 量 :

P S S Q L S E R V E R : \\ S Q L \\ C o n t o s o > $ M u l t i p l e O f G B = 1 0 2 4 * 1 0 2 4

第 35 页

P S S Q L S E R V E R : \\ S Q L \\ C o n t o s o > $ S e r v e r = G e t - I t e m 为 了 完 成 这 个 任 务 , 你 应 该 使 用 哪 个 脚 本 ?

A. $Server.Databases | Where-Object{($_.Size * $MultipleOfGB) -gt 100GB\\} |Select-Object Name, Size

B. $Server | Where-Object{($_.DatabaseSize * $MultipleOfGB) -match 100GB\\} | Select-Object Name, DatabaseSize

C. $Server | Where-Object{($_.DatabaseSize * $MultipleOfGB) -gt 100GB\\} |Select-Object Name, DatabaseSize

D. $Server.Databases | Where-Object{($_.Size * $MultipleOfGB) -match 100GB\\} |Select-Object Name, SizeA n s w e r : A

9 5 . 你 有 一 个 表 I n v e n t o r y 。你 在 当 前 位 置 使 用 下 面 的 S Q L S e r v e r 窗 口 命 令 打 开 了 一 个 会 话

P S Q L S E R V E R : \\ S Q L \\ C O N T O S O \\ D E F A U L T \\ D a t a b a s e s \\ R e p o r t S e r v e r \\ T a b l e s \\ d b o . I n v e n t o r y \\ C o l u m n s >

你 需 要 查 询 表 中 的 所 有 列 , 你 应 该 使 用 哪 个 命 令 脚 本 ? A. Get-Item B. Get-Location C. Get-ChildItem D. Get-ItemProperty A n s w e r : C

9 6 . 你 正 在 一 个 单 独 的 数 据 库 中 配 置 服 务 代 理 来 处 理 信 息 。 你 已 执 行 以 下 的 步 骤 :

1. CREATE MESSAGE TYPE 2. CREATE CONTRACT 3. CREATE QUEUE

你 必 须 要 完 成 服 务 代 理 的 配 置 。 下 一 步 你 应 该 做 什 么 ? A. CREATE ROUTE B. CREATE SERVICE

C. CREATE ENDPOINT D. CREATE BROKER PRIORITY A n s w e r : B

9 7 . 你 有 一 个 数 据 库 C o n t o s o 。 C o n t o s o 有 一 个 服 务 代 理 队 列 V a c a t i o n R e q u e s t Q u e u e 。C o n t o s o 已 经 恢 复 到 一 个 新 的 服 务 器 中 , 既 然 恢 复 了 数 据 库 , 服 务 代 理 就 不 能 够 再 发 送信 息 了 。 为 了 解 决 这 个 问 题 , 你 需 要 配 置 服 务 代 理 。 你 应 该 使 用 哪 个 T - S Q L 语 句 ? A. ALTER DATABASE Contoso SET NEW_BROKER; B. ALTER DATABASE Contoso SET ENABLE_BROKER;

C. ALTER QUEUE VacationRequestQueue WITH STATUS = ON;

D. ALTER QUEUE VacationRequestQueue WITH ACTIVATION (STATUS = ON); A n s w e r : A

9 8 . 你 使 用 下 面 的 T - S Q L 语 句 创 建 一 个 服 务 代 理 队 列 C R E A T E Q U E U E V a c a t i o n R e q u e s t Q u e u e W I T H

R E T E N T I O N = O F F , A C T I V A T I O N (

P R O C E D U R E _ N A M E = d b o . V a c a t i o n R e q u e s t P r o c e s s , M A X _ Q U E U E _ R E A D E R S = 5 ,

E X E C U T E A S S E L F ) ;

第 36 页

为 了 阻 止 服 务 代 理 队 列 处 理 接 受 到 的 信 息 , 你 需 要 修 改 服 务 代 理 队 列 , 但 队 列 还 要 能 够继 续 接 受 信 息 。 你 应 该 使 用 哪 个 T - S Q L 语 句 ? A. ALTER QUEUE VacationRequestQueue WITH RETENTION = ON;

B. ALTER QUEUE VacationRequestQueue WITH STATUS = OFF;

C. ALTER QUEUE VacationRequestQueue WITH ACTIVATION (STATUS = OFF);

D. ALTER QUEUE VacationRequestQueue

WITH ACTIVATION (EXECUTE AS OWNER); A n s w e r : C

9 9 . 你 使 用 同 样 的 服 务 代 理 配 置 来 支 持 一 个 网 站 和 一 个 国 际 化 的 应 用 程 序 。 网 站 的 工 作量 要 比 应 用 程 序 大 。 你 需 要 配 置 服 务 代 理 , 确 保 应 用 程 序 发 送 的 信 息 要 在 网 站 发 送 的 信息 之 前 处 理 。 你 应 该 使 用 哪 个 T - S Q L 语 句 ? A . A L T E R S E R V I C E

B . C R E A T E C O N T R A C T

C . C R E A T E B R O K E R P R I O R I T Y

D . A L T E R Q U E U E W I T H A C T I V A T I O N A n s w e r : C

1 0 0 . 你 正 在 使 用 微 软 S Q L S e r v e r 2 0 0 8 企 业 版 。你 需 要 保 留 对 表 的 所 有 数 据 修 改 历 史 ,包括 类 型 的 修 改 和 值 的 修 改 。 你 应 该 使 用 哪 个 跟 踪 方 法 ?

A . D a t a b a s e A u d i t

B . C h a n g e T r a c k i n g ( 数 据 更 改 跟 踪 ) C . C 2 A u d i t T r a c i n g

D . C h a n g e D a t a C a p t u r e ( 数 据 更 改 捕 获 ) A n s w e r : D

1 0 1 . 数 据 库 中 有 S a l e s 表 和 S a l e s A r c h i v e 表 。 S a l e s A r c h i v e 包 含 历 史 销 售 数 据 。 你 在 S a l e s表 上 配 置 了 数 据 更 改 跟 踪 ,S a l e s 表 最 小 版 本 号 是 1 0 。你 需 要 写 一 个 查 询 来 导 出 从 版 本 1 0以 来 改 变 过 的 销 售 数 据 , 包 括 删 除 行 的 主 键 。 你 应 该 使 用 哪 个 方 法 ? A. FROM Sales

RIGHT JOIN CHANGETABLE (CHANGES Sales, 10) AS C ...

B. FROM Sales

INNER JOIN CHANGETABLE (CHANGES Sales, 10) AS C ...

C. FROM Sales

INNER JOIN CHANGETABLE (CHANGES SalesArchive, 10) AS C ...

D. FROM Sales

RIGHT JOIN CHANGETABLE (CHANGES SalesArchive, 10) AS C ...

第 37 页

A n s w e r : A

1 0 2 . 你 被 要 求 修 改 S a l e s . S a l e s O r d e r 表 。 这 个 表 已 经 开 启 数 据 更 改 跟 踪 。 你 需 要 在 修 改 这个 表 之 前 停 止 数 据 更 改 跟 踪 , 你 应 该 使 用 哪 个 T - S Q L 语 句 ?

A. EXEC sys.sp_cdc_disable_db

B. ALTER DATABASE Contoso SET CHANGE_TRACKING = OFF C. ALTER TABLE Sales.SalesOrder DISABLE CHANGE_TRACKING D. EXEC sys.sp_cdc_disable_table @source_schema = N'Sales', @source_name = N'SalesOrder',

@capture_instance = N'Sales_SalesOrder' A n s w e r : C

1 0 3 . 你 在 S a l e s . S a l e s O r d e r 表 上 已 经 实 施 了 数 据 更 改 跟 踪 。 你 需 要 决 定 自 最 小 版 本 号 以来 改 变 过 的 所 有 列 。 你 应 该 使 用 哪 个 函 数 ? A. CHANGE_TRACKING_CURRENT_VERSION B. CHANGE_TRACKING_IS_COLUMN_IN_MASK C. CHANGETABLE with the CHANGES argument D. CHANGETABLE with the VERSION argument A n s w e r : C

1 0 4 . 你 有 两 个 表 C u s t o m e r s 和 O r d e r s 。 他 们 通 过 在 C u s t o m e r I D 列 上 的 外 键 约 束 相 互 关 联 。你 需 要 产 生 以 下 的 X M L 结 构 , 其 中 包 括 客 户 c u s t o m e r s 以 及 他 们 相 关 的 订 单 o r d e r s 。 < R o o t >

< C u s t o m e r >

< C u s t o m e r N a m e > C u s t o m e r 1 < / C u s t o m e r N a m e > < O r d e r s >

< O r d e r > < O r d e r D a t e > 1 / 1 / 2 0 0 8 < / O r d e r D a t e > < O r d e r V a l u e > 4 2 2 < / O r d e r V a l u e > < / O r d e r >

< O r d e r > < O r d e r D a t e > 4 / 8 / 2 0 0 8 < / O r d e r D a t e > < O r d e r V a l u e > 3 0 0 < / O r d e r V a l u e > < / O r d e r > . . .

< / O r d e r s > . . .

< / C u s t o m e r > < R o o t >

你 应 该 使 用 哪 个 查 询 ?

A. SELECT CustomerName,OrderDate,OrderValue

FROM Customers c JOIN Orders o ON o.CustomerID = c.CustomerID FOR XML AUTO, TYPE

B. SELECT * FROM (SELECT CustomerName,NULL AS OrderDate, NULL AS OrderValue FROM Customers UNION ALL

SELECT NULL,OrderDate,OrderValue

FROM Orders) CustomerOrders FOR XML AUTO, ROOT('Root')

第 38 页

C. SELECT CustomerName,(SELECT OrderDate,OrderValue FROM Orders FOR XML PATH('Order')) FROM Customers

FOR XML PATH('Customer'), ROOT('Root'), TYPE

D. SELECT CustomerName,(SELECT OrderDate,OrderValue FROM Orders

WHERE Orders.CustomerId = Customers.CustomerId A n s w e r : D

1 0 5 . 你 需 要 产 生 以 下 的 X M L 文 档 。 < P r o d u c t E x p o r t >

< P r o d u c t P r i c e = \< P r o d u c t P r i c e = \< P r o d u c t P r i c e = \< P r o d u c t P r i c e = \< / P r o d u c t E x p o r t >

你 应 该 使 用 哪 个 查 询 ?

A. SELECT Price, ProductName

FROM Products AS ProductExport FOR XML PATH('Product')

B. SELECT Price, ProductName FROM Products FOR XML AUTO, ROOT('ProductExport')

C. SELECT Price [@Price], ProductName AS [*]

FROM Products AS ProductExport FOR XML AUTO, ELEMENTS

D. SELECT Price [@Price],ProductName AS [*]

FROM Products FOR XML PATH('Product'),ROOT('ProductExport') A n s w e r : D

1 0 6 . 你 们 公 司 数 据 库 有 C u s t o m e r s 和 O r d e r s 表 。 你 的 任 务 是 写 一 个 查 询 语 句 , 以 合 格 的 结 构 良 好 的 X M L 文 档 形 式 输 出 c u s t o m e r 和 o r d e r 数 据 , 在 此 文 档 中 需 要 包 含 有 属 性 和 元素 。 你 觉 得 使 用 F O R X M L A U T O 子 句 是 不 合 适 的 。 你 需 要 选 择 正 确 的 F O R X M L 子 句 来完 成 任 务 。 你 应 该 使 用 哪 个 F O R X M L 语 句 ? 选 择 两 个 解 决 方 案 。 A. FOR BROWSE B. FOR XML RAW C. FOR XML PATH D. FOR XML EXPLICIT A n s w e r : C D

1 0 7 . 你 们 公 司 数 据 库 有 C u s t o m e r s 和 O r d e r s 表 。 你 的 任 务 是 写 一 个 查 询 语 句 , 以 一 个 合格 及 结 构 良 好 的 X M L 文 档 形 式 输 出 数 据 。 X M L 数 据 必 须 是 基 于 属 性 的 , 并 且 o r d e r 数 据X M L 必 须 是 嵌 套 在 c u s t o m e r 数 据 X M L 中 。 你 需 要 写 一 个 查 询 语 句 来 满 足 此 要 求 。 你 应 该使 用 哪 个 T - S Q L 语 句 ?

A. SELECT c.ContactName, o.OrderDate, o.RequiredDate

FROM Customers c INNER JOIN Orders o ON c.CustomerID = o.CustomerID FOR XML RAW('Contact'), ROOT('ContactOrderDate')

第 39 页

B. SELECT c.ContactName, o.OrderDate, o.RequiredDate

FROM Customers c INNER JOIN Orders o ON c.CustomerID = o.CustomerID FOR XML PATH('ContactOrderDate')

C. SELECT c.ContactName, o.OrderDate, o.RequiredDate FROM Customers c INNER JOIN Orders o

ON c.CustomerID = o.CustomerID FOR XML AUTO

D. SELECT c.ContactName, o.OrderDate, o.RequiredDate

FROM Customers c INNER JOIN Orders o ON c.CustomerID = o.CustomerID FOR XML AUTO, ROOT('ContactOrderDate') A n s w e r : D

1 0 8 . 你 有 一 个 表 C u s t o m e r , 表 里 有 一 个 X M L 列 L o c a t i o n s , 此 列 存 储 了 X M L 片 段 , 包 含 了

一 个 或 多 个 地 点 , 示 例 如 下 :

< L o c a t i o n C i t y = \A d d r e s s = \P h o n e N u m b e r = \/ > < L o c a t i o n C i t y = \A d d r e s s = \P h o n e N u m b e r = \/ > < L o c a t i o n C i t y = \A d d r e s s = \P h o n e N u m b e r = \/ >

你 需 要 写 一 个 查 询 , 客 户 的 每 个 地 点 返 回 一 行 。 每 个 结 果 行 必 须 包 含 客 户 的 姓 名 n a m e ,城 市 c i t y 和 一 个 含 有 地 点 详 情 的 X M L 片 段 。 你 应 该 使 用 哪 个 查 询 ? A. SELECT CustomerName,

Locations.query('for $i in /Location return data($i/@City)'), Locations.query('for $i in /Location return $i')FROM Customer

B. SELECTCustomerName,

Locations.query('for $i in /Location return element Location {$i/@City, $i}') FROM Customer

C. SELECT CustomerName,Locations.query('data(/Location/@City)'), Locations.query('/Location') FROM Customer

D. SELECT CustomerName, Loc.value('@City','varchar(100)'), Loc.query('.') FROM Customer

CROSS APPLY Customer.Locations.nodes ('/Location') Locs(Loc)

A n s w e r : D

1 0 9 . 你 有 以 下 的 X M L

< S i t e U R L = \

< S i t e U R L = \i n a n c e / i n d e x . h t m \

< S i t e U R L = \i n a n c e / r e p o r t s / i n d e x . h t m \/ >

< S i t e U R L = \i n a n c e / m a i n / i n d e x . h t m \/ > < / S i t e >

< S i t e U R L = \a r k e t i n g / i n d e x . h t m \

第 40 页

< S i t e U R L = \a r k e t i n g / r e p o r t s / i n d e x . h t m \/ >

< S i t e U R L = \a r k e t i n g / m a i n / i n d e x . h t m \/ >

< / S i t e >

< S i t e U R L = \/ > < / S i t e >

你 的 任 务 是 写 一 个 查 询 , 使 用 O P E N X M L 列 出 X M L 中 所 有 的 站 点 s i t e s 。 结 果 中 包 含 两 列P a r e n t S i t e U R L 和 S i t e U R L 。 P a r e n t S i t e U R L 列 应 该 包 含 父 节 点 的 U R L 属 性 。 S i t e U R L 列 应该 包 含 站 点 自 身 的 U R L 属 性 。 输 出 的 结 果 应 该 如 下 图 所 示 :

你 应 该 使 用 哪 个 T - S Q L 语 句 。

A . S E L E C T P a r e n t S i t e U R L , S i t e U R L

F R O M O P E N X M L ( @ X M L D o c H a n d l e , ' // S i t e ' , 1 ) W I T H ( P a r e n t S i t e U R L n V a r C h a r ( 5 1 2 ) ' . . / U R L ' , S i t e U R L n V a r C h a r ( 5 1 2 ) ' U R L ' )

B . S E L E C T P a r e n t S i t e U R L , S i t e U R L

F R O M O P E N X M L ( @ X M L D o c H a n d l e , ' / / U R L ' , 1 ) W I T H ( P a r e n t S i t e U R L n V a r C h a r ( 5 1 2 ) ' . . / @ U R L ' , S i t e U R L n V a r C h a r ( 5 1 2 ) ' @ U R L ' )

C . S E L E C T P a r e n t S i t e U N I R L , S i t e U R L

F R O M O P E N X M L ( @ X M L D o c H a n d l e , ' / / S i t e ' , 1 ) W I T H ( P a r e n t S i t e U R L n V a r C h a r ( 5 1 2 ) ' . . / @ U R L ' , S i t e U R L n V a r C h a r ( 5 1 2 ) ' @ U R L ' )

D . S E L E C T P a r e n t S i t e U R L , S i t e U R L

F R O M O P E N X M L ( @ X M L D o c H a n d l e , ' / / @ U R L ' , 1 ) W I T H ( P a r e n t S i t e U R L n V a r C h a r ( 5 1 2 ) ' . . / U R L ' , S i t e U R L n V a r C h a r ( 5 1 2 ) ' U R L ' )

A n s w e r : C

1 1 0 . 你 们 公 司 的 一 个 应 用 程 序 使 用 存 储 过 程 把 X M L 传 递 到 数 据 库 服 务 器 。数 据 库 服 务 器里 有 大 量 活 动 的 X M L 句 柄 。 你 确 定 X M L 没 有 从

第 41 页

S Q L S e r v e r 内 存 中 刷 新 。 你 需 要 使 用 系 统存 储 过 程 来 从 内 存 中 刷 新 X M L 。 你 应 该 使 用 哪 个 T - S Q L 语 句 ? A . s p _ x m l _ r e m o v e d o c u m e n t B . s p _ x m l _ p r e p a r e d o c u m e n t C . s p _ r e s e r v e _ h t t p _ n a m e s p a c e

D . s p _ d e l e t e _ h t t p _ n a m e s p a c e _ r e s e r v a t i o n A n s w e r : A

1 1 1 . 你 们 公 司 为 其 他 公 司 提 供 市 场 数 据 。 你 有 以 下 的 T - S Q L 语 句 : DECLARE @CustomerDemographics XML SET @CustomerDemographics=N'

0

1 1

1 1

'

DECLARE @OutputAgeOfCoffeeDrinkers XML

SET @OutputAgeOfCoffeeDrinkers = @CustomerDemographics.query(' for $output in /child::CustomerDemographics/child::Customer[ ( child::IsCoffeeDrinker[1] cast as xs:boolean )] return

{ $output/attribute::Age \\} ')

SELECT @OutputAgeOfCoffeeDrinkers

你 需 要 确 认 查 询 的 结 果 , 你 所 认 为 的 结 果 是 什 么 ? A.

B.

C.

D.

第 42 页

A n s w e r : A

1 1 2 . 你 有 一 个 商 店 表 S t o r e s , 其 中 有 一 O p e n H o u r s 列 , 此 列 包 含 了 开 放 和 关 闭 时 间 。 < h o u r s d a y o f W e e k = ° M o n d a ? ± o p e = ? ± 8 0 0 ? ± c l o e d = ? ± 8 : 0 < h o u r s d a y o f W e e k = ° T u e s d a ? ± o p e = ? ± 8 0 0 ? ± c l o e d = ? ± 8 : 0 . . .

< h o u r s d a y o f W e e k = ° S a t u r d a ? ± o p e = ? ± 8 0 0 ? ± c l o e d = ? ± 8 : 0 0 你 需 要 写 一 个 查 询 , 返 回 某 天 商 店 和 它 们 开 放 时 间 的 列 表 。 你 应 该 使 用 哪 个 代 码 段 ?

A. DECLARE @Day VARCHAR(10) = 'Tuesday'

SELECT StoreName, OpenHours.value('/hours[1]/@open','time') FROM Stores

WHERE OpenHours.value('/hours[1]/@dayofWeek','varchar(20)') = @Day

B. DECLARE @Day VARCHAR(10) = 'Tuesday'

SELECT StoreName, OpenHours.value('/hours[1]/@open','time') FROM Stores

WHERE OpenHours.exist('/hours[@dayofWeek=sql:variable(\

C. DECLARE @Day VARCHAR(10) = 'Tuesday' SELECT Storename,

OpenHours.query('data(/hours[@dayofWeek=sql:variable(\FROM Stores

D. DECLARE @Day VARCHAR(10) = 'Tuesday' SELECT StoreName,

OpenHours.value('/hours[1][@dayofWeek=sql:variable(\FROM Stores A n s w e r : C

1 1 3 . 你 有 以 下 的 X M L 文 档 , 其 中 包 含 了 产 品 P r o d u c t 信 息 。 D E C L A R E @ p r o d L i s t x m l = '

< P r o d u c t L i s t x m l n s = \o r l d _ I m p o r t e r s / s c h e m a s / P r o d u c t s \

< P r o d u c t N a m e = \C a t e g o r y = \P r i c e = \/ > < P r o d u c t N a m e = \C a t e g o r y = \P r i c e = \/ > < P r o d u c t N a m e = \C a t e g o r y = \P r i c e = \/ > . . .

< / P r o d u c t L i s t > ' ;

你 需 要 返 回 一 个 产 品 列 表 , 其 中 包 括 产 品 名 称 , 种 类 , 价 格 。 你 应 该 使 用 哪 个 查 询 ?

A. SELECT prod.value('.[1]/@Name','varchar(100)'),

prod.value('.[1]/@Category','varchar(20)'),prod.value('.[1]/@Price','money') FROM @prodList.nodes('/ProductList/Product') ProdList(prod);

B. SELECT prod.value('@Name','varchar(100)'),

prod.value('@Category','varchar(20)'),prod.value('@Price','money') FROM @prodList.nodes('/ProductList/Product') ProdList(prod);

第 43 页

C. WITH XMLNAMESPACES(DEFAULT

'urn;Wide_World_Importers/schemas/Products' as o)

SELECT prod.value('Name[1]','varchar(100)'),prod.value('Category[1]','varchar(20)'), prod.value('Price[1]','money')

FROM @prodList.nodes('/o:ProductList/o:Product') ProdList(prod);

D. WITH XMLNAMESPACES(DEFAULT 'urn:Wide_World_Importers/schemas/Products') SELECT prod.value('./@Name','varchar(100)'),

prod.value('./@Category','varchar(20)'),prod.value('./@Price','money') FROM @prodList.nodes('/ProductList/Product') ProdList(prod); A n s w e r : D

1 1 4 . 你 有 一 个 表 P r o d u c t s . P r o d u c t 。 表 中 有 P r o d u c t I D , N a m e , S i z e , 和 C a t e g o r y 列 。 你 有一 个 变 量 @ X M L , 它 的 值 如 下 : < R o o t >

< C a t e g o r y N a m e = \/ >< C a t e g o r y N a m e = \/ > < C a t e g o r y N a m e = \/ > < / R o o t >

你 的 任 务 是 写 一 个 查 询 , 列 出 P r o d u c t s . P r o d u c t 表 中 符 合 @ X M L 文 档 中 种 类 的 所 有 产 品 。你 应 该 写 哪 个 查 询 语 句 ? A. SELECT p.ProductID, p.Name, p.Size, p.Category FROM Production.Product p

CROSS APPLY @XML.nodes('//Category') as x(s)

B. SELECT p.ProductID, p.Name, p.Size, p.Category FROM Production.Product p

OUTER APPLY @XML.nodes('//Category') as x(s)

C. WITH XMLTable AS

(SELECT s.value('@Name','varchar(20)') as Category FROM @XML.nodes('//Category') as x(s))

SELECT p.ProductID, p.Name, p.Size, p.Category FROM Production.Product p

INNER JOIN XMLTable x ON p.Category = x.Category

D. WITH XMLTable

AS( SELECT s.value('@Category','varchar(20)') as Category FROM @XML.nodes('//Category') as x(s))

SELECT p.ProductID, p.Name, p.Size, p.Category FROM Production.Product p

INNER JOIN XMLTable x ON p.Category = x.Category A n s w e r : C

1 1 5 . 你 们 公 司 和 其 他 公 司 交 流 信 息 是 通 过 X M L 和 W E B 服 务 。你 的 经 理 让 你 删 除 不 再 使 用的 架 构 集 合 。 在 删 除 这 个 架 构 集 合 之 前 , 你 应 该 确 认 它 没 有 被 使 用 , 你 需 要 使 用 目 录 视图 来 确 认 一 个 架 构

第 44 页

集 合 是 否 在 使 用 。 你 应 该 使 用 哪 个 目 录 视 图 ? A . s y s . x m l _ s c h e m a _ c o m p o n e n t s B . s y s . x m l _ s c h e m a _ n a m e s p a c e s C . s y s . x m l _ s c h e m a _ c o l l e c t i o n s

D . s y s . c o l u m n _ x m l _ s c h e m a _ c o l l e c t i o n _ u s a g e s A n s w e r : D

1 1 6 . 你 有 一 个 X M L 架 构 , 你 需 要 使 用 它 来 验 证 数 据 库 中 的 X M L 数 据 。 你 需 要 存 储 这 个X M L 架 构 。 你 应 该 使 用 哪 个 代 码 段 ? A. CREATE SCHEMA CustomerSchema

B. CREATE DEFAULT CustomerSchema AS 'XML' C. CREATE PRIMARY XML INDEX CustomerSchema

D. CREATE XML SCHEMA COLLECTION CustomerSchema A n s w e r : D

1 1 7 . 你 有 一 个 表 C u s t o m e r s ,其 中 有 一 个 X M L 列 C u s t o m e r D a t a 。目 前 表 中 还 没 有 任 何 索 引 。你 在 查 询 中 使 用 以 下 的 W H E R E 子 句 :

W H E R E C u s t o m e r D a t a . e x i s t ( ' / C u s t o m e r D e m o g r a p h i c / @ A g e [ . > = \1 \= 1

你 需 要 为 这 个 查 询 创 建 索 引 。 你 应 该 使 用 哪 个 T - S Q L 语 句 ?

A. CREATE CLUSTERED INDEX CL_IDX_Customer ON Customers(CustomerID); CREATE PRIMARY XML INDEX PXML_IDX_Customer ON Customers(CustomerData);

CREATE XML INDEX SXML_IDX_Customer ON Customer(CustomerData) USING XML INDEX PXML_IDX_Customer FOR PATH;

B. CREATE PRIMARY XML INDEX PXML_IDX_Customer ON Customers(CustomerData);

CREATE XML INDEX SXML_IDX_Customer ON Customer(CustomerData) USING XML INDEX PXML_IDX_Customer FOR VALUE;

C. CREATE PRIMARY XML INDEX PXML_IDX_Customer ON Customers(CustomerData);

CREATE XML INDEX SXML_IDX_Customer ON Customer(CustomerData) USING XML INDEX PXML_IDX_Customer FOR PATH;

D. CREATE CLUSTERED INDEX CL_IDX_Customer ON Customers(CustomerID); CREATE PRIMARY XML INDEX PXML_IDX_Customer ON Customers(CustomerData);

CREATE XML INDEX SXML_IDX_Customer_Property ON Customer(CustomerData) USING XML INDEX PXML_IDX_Customer FOR VALUE; A n s w e r : A

1 1 8 . 你 需 要 捕 获 一 个 查 询 的 执 行 计 划 , 你 应 该 使 用 哪 个 语 句 ? A. SET FORCEPLAN ON;

B. SET SHOWPLAN_XML ON; C. SET STATISTICS IO ON; D. SET STATISTICS TIME ON; A n s w e r : B

第 45 页

1 1 9 . 你 正 在 解 决 S Q L S e r v e r 2 0 0 8 查 询 性 能 问 题 。你 的 任 务 是 使 用 T - S Q L 创 建 一 个 执 行 评估 计 划 , 在 S Q L S e r v e r 管 理 器 中 你 要 能 够 查 看 执 行 计 划 图 , 且 需 要 将 执 行 计 划 保 存为 . s q l p l a n 文 件 。 你 应 该 使 用 哪 个 T - S Q L 设 置 ?

A. SET SHOWPLAN_ALL ON; B. SET SHOWPLAN_XML ON; C. SET STATISTICS XML ON; D. SET STATISTICS PROFILE ON; A n s w e r : B

1 2 0 . 你 正 在 解 决 S Q L S e r v e r 2 0 0 8 查 询 性 能 问 题 。你 的 任 务 是 捕 获 查 询 执 行 计 划 图 。你 需要 保 存 这 个 计 划 到 文 件 中 ,这 个 文 件 要 能 够 被 S Q L S e r v e r 管 理 器 打 开 并 显 示 执 行 计 划 图 。你 应 该 使 用 哪 个 文 件 扩 展 名 ?

A. .gif B. .xml C. .psql D. .sqlplan A n s w e r : D

1 2 1 . 你 运 行 了 服 务 器 端 跟 踪 , 产 生 了 4 5 个 跟 踪 文 件 。 你 想 加 载 这 些 跟 踪 文 件 到 数 据 库 表P e r f D a t a 中 进 行 长 久 分 析 。 你 需 要 从 c : \\ m y _ t r a c e _ 3 8 . t r c 开 始 加 载 三 个 文 件 。 你 应 该 使 用哪 个 T - S Q L 语 句 ? A. SELECT * INTO PerfData FROM ::fn_trace_gettable('c:\\my_trace.trc', 3) B. SELECT * INTO PerfData FROM ::fn_trace_gettable('c:\\my_trace_38.trc', 3) C. SELECT * INTO PerfData FROM ::fn_trace_gettable('c:\\my_trace38.trc', default) D. SELECT * INTO PerfData

FROM ( SELECT * FROM ::fn_trace_gettable ('c:\\my_trace_38.trc', default) UNION ALL

SELECT * FROM ::fn_trace_gettable A n s w e r : B

1 2 2 . 你 在 使 用 S Q L S e r v e r 性 能 监 视 器 来 收 集 死 锁 信 息 。 你 需 要 捕 获 死 锁 信 息 的 X M L 描 述 。 你 应 该 使 用 哪 个 事 件 ? A . L o c k : D e a d l o c k B . S h o w p l a n X M L

C . D e a d l o c k G r a p h ( 死 锁 图 表 ) D . L o c k : D e a d l o c k C h a i n A n s w e r : C

1 2 3 . 你 正 在 解 决 S Q L S e r v e r 2 0 0 8 查 询 性 能 问 题 。 你 有 关 于 P e r f D a t a 表 的 性 能 监 视 器 跟 踪数 据 。 你 需 要 决 定 哪 个 事 件 C P U 花 费 超 过 了 1 秒 或 者 运 行 时 间 超 过 了 2 秒 。 你 应 该 使 用 哪个 T - S Q L 语 句 ? A. SELECT TextData, Duration, CPU FROM PerfData

WHERE EventClass = 12 AND( CPU > 1000 OR Duration > 2000 )

B. SELECT TextData, Duration, CPU FROM PerfData

WHERE EventClass = 12 AND( CPU > 1000 OR Duration > 2000000 )

C. SELECT TextData, Duration, CPU FROM PerfData

WHERE EventClass = 12 AND( CPU > 1000000 OR Duration > 2000 )

D. SELECT TextData, Duration, CPU FROM PerfData

WHERE EventClass = 12 AND ( CPU > 1000000 OR Duration > 2000000 )

第 46 页

A n s w e r : B

1 2 4 . 你 正 在 使 用 数 据 库 引 擎 优 化 顾 问 ( D T A ) 来 分 析 工 作 量 。 你 需 要 保 存 D T A 的 建 议 。 你应 该 使 用 哪 个 命 令 ?

A . P r e v i e w W o r k l o a d T a b l e ( 预 览 工 作 量 表 ) B . E x p o r t S e s s i o n R e s u l t s ( 导 出 会 话 结 果 ) C . I m p o r t S e s s i o n D e f i n i t i o n ( 导 入 会 话 定 义 ) D . E x p o r t S e s s i o n D e f i n i t i o n ( 导 出 会 话 定 义 ) A n s w e r : B

1 2 5 . 你 需 要 捕 获 和 记 录 数 据 库 引 擎 优 化 顾 问 ( D T A ) 的 分 析 工 作 量 。 你 应 该 使 用 哪 个 工具 ?

A . D T A u t i l i t y B . A c t i v i t y M o n i t o r

C . S Q L S e r v e r P r o f i l e r ( S Q L S e r v e r 性 能 监 视 器 ) D . P e r f o r m a n c e M o n i t o r A n s w e r : C

1 2 6 . 你 有 一 个 数 据 库 使 用 存 储 过 程 执 行 插 入 、 更 新 、 删 除 、 和 查 询 语 句 。 你 的 任 务 是 提供 建 议 是 在 数 据 库 中 创 建 索 引 还 是 删 除 索 引 。 你 应 该 选 择 一 个 合 适 方 法 来 完 成 这 个 任务 。 你 应 该 使 用 哪 个 方 法 ? A . I n d e x U s a g e D M V s B . M i s s i n g I n d e x D M V s

C . S Q L S e r v e r P r o f i l e r ( S Q L S e r v e r 性 能 监 视 器 )

D . D a t a b a s e E n g i n e T u n i n g A d v i s o r ( 数 据 库 引 擎 优 化 顾 问 ) A n s w e r : D

1 2 7 . 你 的 任 务 是 为 数 据 库 引 擎 优 化 顾 问 ( D T A ) 创 建 工 作 负 荷 。 你 需 要 使 用 合 适 的 格 式来 创 建 这 个 工 作 负 荷 。 你 应 该 使 用 哪 个 格 式 ? 选 择 三 个 。

A . X M L F i l e ( X M L 文 件 )

B . T r a n s a c t - S Q L S c r i p t ( T - S Q L 脚 本 )

C . S Q L S e r v e r E v e n t L o g ( S Q L S e r v e r 事 件 日 志 )

D . S Q L S e r v e r T r a n s a c t i o n L o g ( S Q L S e r v e r 事 务 日 志 )

E . S Q L S e r v e r P r o f i l e r T r a c e F i l e ( S Q L S e r v e r 性 能 监 视 器 跟 踪 文 件 ) F . P e r f o r m a n c e C o u n t e r L o g F i l e ( 性 能 计 数 器 日 志 文 件 ) A n s w e r : A B E

1 2 8 . 你 需 要 为 所 有 经 S Q L S e r v e r 确 认 的 缺 失 的 索 引 构 建 C R E A T E I N D E X 语 句 。你 应 该 使 用 哪 个 动 态 管 理 视 图 ( D M V ) ? A . s y s . d m _ d b _ i n d e x _ u s a g e _ s t a t s

B . s y s . d m _ d b _ m i s s i n g _ i n d e x _ d e t a i l s C . s y s . d m _ d b _ m i s s i n g _ i n d e x _ c o l u m n s D . s y s . d m _ d b _ m i s s i n g _ i n d e x _ g r o u p _ s t a t s A n s w e r : B

1 2 9 . 你 注 意 到 了 数 据 库 服 务 器 反 应 很 慢 。 你 运 行 以 下 的 动 态 管 理 视 图 ( D M V ) 查 询 。

S E L E C T T O P ( 1 0 ) w a i t _ t y p e ,w a i t _ t i m e _ m s F R O M s y s . d m _ o s _ w a i t _ s t a t s

O R D E R B Y w a i t _ t i m e _ m s D E S C ;

查 询 返 回 前 1 0 个 S O S _ S C H E D U L E R _ Y I E L D 等 待 类 型 。 你 需 要 注 意 到 是 什 么 问 题 引 起 了服 务 器 反 映 迟 钝 。 你 应 该 调 查 哪 个 资 源 ?

第 47 页

A . D i s k ( 硬 盘 )B . C P U C . M e m o r y ( 内 存 ) D . N e t w o r k ( 网 络 ) A n s w e r : B

1 3 0 . 你 试 图 查 询 s y s . d m _ d b _ i n d e x _ u s a g e _ s t a t s 来 检 查 C o n t o s o 数 据 库 中 索 引 的 状 态 。 但 是查 询 失 败 了 , 你 收 到 了 以 下 的 错 误 信 息 : “ 用 户 没 有 权 限 执 行 此 操 作 ” 。 你 需 要 被 赋 予最 小 的 权 限 来 访 问 这 个 动 态 管 理 视 图 。 你 应 该 被 赋 予 什 么 权 限 ? A. CONTROL B. VIEW SERVER STATE C. VIEW DATABASE STATE

D. CREATE EXTERNAL ACCESS ASSEMBLY A n s w e r : B

1 3 1 . 你 要 评 估 一 个 数 据 库 的 设 计 。 数 据 库 中 所 有 表 都 应 该 有 一 个 聚 集 索 引 。 你 需 要 使用 系 统 目 录 视 图 来 决 定 哪 些 表 缺 少 聚 集 索 引 。 你 应 该 使 用 哪 个 T - S Q L 语 句 ?

A. SELECT name AS table_name FROM sys.tables

WHERE OBJECTPROPERTY(object_id,'TableHasClustIndex') = 0 ORDER BY name;

B. SELECT name AS table_name FROM sys.tables

WHERE OBJECTPROPERTY(object_id,'TableHasUniqueCnst') = 0 ORDER BY name;

C. SELECT name AS table_name FROM sys.tables

WHERE OBJECTPROPERTY(object_id,'TableHasClustIndex') = 0 AND

OBJECTPROPERTY(object_id,'TableHasUniqueCnst') = 1 ORDER BY name;

D. SELECT name AS table_name FROM sys.tables

WHERE OBJECTPROPERTY(object_id,'TableHasClustIndex') = 1 AND OBJECTPROPERTY(object_id,'TableHasUniqueCnst') = 1 ORDER BY name; A n s w e r : A

1 3 2 . 你 需 要 确 认 在 一 个 没 有 使 用 动 态 S Q L 的 存 储 过 程 中 哪 些 表 通 过 表 名 被 引 用 过 。 你 应 该 使 用 哪 个 目 录 视 图 ? A . s y s . p r o c e d u r e s

B . I N F O R M A T I O N _ S C H E M A . T A B L E S C . I N F O R M A T I O N _ S C H E M A . R O U T I N E S D . s y s . s q l _ e x p r e s s i o n _ d e p e n d e n c i e s A n s w e r : D

133. How many years of experience do you have in developing databases using SQL Server 2008?

A. I have not done this yet. B. Less than 3 months

C. 3-6 months D. More than 6 months but less than 1 year E. 1-2 years F. 2-3 years G. 3 or more years Answer: A

134. How many years of experience do you have in configuring any version of SQL

第 48 页

Server?

A. I have not done this yet.

B. Less than 3 months The safer , easier way to help you pass any IT exams. C. 3-6 months D. More than 6 months but less than 1 year

E. 1-2 years F. 2-3 years G. 3-4 years H. 4-5 years I. 5 or more years Answer: A

135. Rate your level of proficiency with creating, implementing, and altering tables, views, and indexes in

SQL Server, including implementing data types and partitioning solutions. A. Very High B. High C. Moderate D. Low E. Very Low Answer: A

136. Rate your level of proficiency with implementing programming objects in SQL Server, including

creating and altering stored procedures, user-defined functions, DML and DDL triggers, and CLR-based

objects; managing transactions; and implementing error handling. A. Very High B. High C. Moderate D. Low E. Very Low Answer: A

137. Rate your level of proficiency in working with query fundamentals, including using SELECT, INSERT,

UPDATE, DELETE, OUTPUT, and MERGE statements, implementing aggregate queries, combining

datasets, and applying built-in scalar functions.

A. Very High B. High C. Moderate D. Low E. Very Low Answer: A

138. Rate your level of proficiency with applying additional SQL Server query techniques, including

subqueries, CTE queries, ranking functions, and execution plans. A. Very High B. High C. Moderate D. Low E. Very Low Answer: A

139. Rate your level of proficiency with using additional SQL Server components, including Database Mail,

full-text search, Windows PowerShell?, SQL Server Management Objects, and Service Broker.

A. Very High B. High C. Moderate D. Low E. Very Low Answer: A

140. Rate your level of proficiency with using XML data, including retrieving relational data as XML,

transforming XML into relational data, and querying and managing XML data. A. Very High B. High C. Moderate D. Low E. Very Low Answer: A

141. Rate your level of proficiency with gathering performance information, including capturing execution

plans, gathering trace information by using SQL Server Profiler, collecting output from

第 49 页

Database Engine

Tuning Advisor, and collecting information from system metadata. A. Very High B. High C. Moderate D. Low E. Very Low Answer: A

第 50 页

本文来源:https://www.bwwdw.com/article/1gzo.html

Top