- 相关推荐
2017微软认证考试备考复习题及答案
第1题
你有一个名为John的用户。他对Sales架构有SELECT访问权。 你需要从Sales.SalesOrder表消除John的SELECT访问权, 但又不能影响他的其他权限。应使用哪一条Transact-SQL语句? A. DROP USER John;
B. DENY SELECT ON Sales.SalesOrder TO John;
C. GRANT DELETE ON Sales.SalesOrder TO John;
D. REVOKE SELECT ON Sales.SalesOrder FROM John;
答案:B
第2题
你的数据库有5GB,并包含名为SalesHistory的表。表中频繁插入和更新销售信息。你发现发生了过度页拆分。你需 要确保减少SalesHistory表的页拆分。应使用哪个代码片段?
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;
答案:B
第3题
你有一个名为dbo.Customers的表。该表是使用下面的Transact-SQL语句创建的: CREATE TABLE dbo.Customers (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())) 你创建了一个存储过程,其中包含dbo.Customers表的AccountNumber、Country和StateProvince列。该存储过程接受一 个参数来根据AccountNumber列筛选输出。你需要优化该存储过程的性能。你不得更改现有表结构。应使用哪一条 Transact-SQL语句?
A. CREATE STATISTICS ST_Customer_AccountNumber ON dbo.Customer (AccountNumber) WITH FULLSCAN;
B. CREATE CLUSTERED INDEX IX_Customer_AccountNumber ON dbo.Customer (AccountNumber);
C. CREATE NONCLUSTERED INDEX IX_Customer_AccountNumber ON dbo.Customer (AccountNumber) WHERE AccountNumber = ’’;
D. CREATE NONCLUSTERED INDEX IX_Customer_AccountNumber ON dbo.Customer (AccountNumber) INCLUDE (Country, StateProvince);
答案:D
第4题
你要创建一个表来存储客户的GPS位置。你需要确保该表允许你找出指定销售地区的客户,并计算客户与最近店铺 之间的距离。应使用哪种数据类型?
A. geometry
B. geography
C. nvarchar(max)
D. varbinary(max) FILESTREAM
答案:B
第5题
你计划将名为SmallKey的新列添加到Sales.Product表,该列将在唯一约束中使用。你需要确保在添加新列时,下面的 信息适用: ’a1’和’A1’被视作不同的值 ORDER BY子句中’a’和’A’排在’b’和’B’之前 你需要选择符合新列的要求的排序规则。你选择哪种排序规则?
A. Latin1_General_BIN
B. SQL_Latin1_General_CP1_CI_AI
C. SQL_Latin1_General_CP1_CI_AS
D. SQL_Latin1_General_CP1_CS_AS
答案:D
第6题
你有多个表, 它们表示同类实体的各种属性。 属性值的类型有text、 geometry、 varchar(max)以及指定为 “bit NOT NULL” 数据类型的用户类型。你计划将多个表的数据整合为一个表。该表将利用SPARSE选项来使用半结构化存储。你的 任务是确定与SPARSE选项兼容的数据类型。哪个数据类型与SPARSE选项兼容?
A. text
B. geometry
C. varchar(max)
D. 定义为’bit NOT NULL’的用户定义类型
答案:C
第7题
你需要创建一个存储过程,该过程接受名为@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
答案:B
第8题
你有一个用用户定义函数实现的计算列。该用户定义函数返回一个格式化的帐号。必须为该列建索引,以提供足够 的搜索性能。你计划对该计算列创建索引。你需要确定该用户定义函数的ObjectPropertyEX值的有效组合。应使用哪 种组合?
A. IsDeterministic = True IsSystemVerified = True UserDataAccess = False SystemDataAccess = False
B. IsDeterministic = True IsSystemVerified = True IsPrecise = True IsTableFunction = True
C. IsDeterministic = False IsSystemVerified = True UserDataAccess = False SystemDataAccess = False
D. IsDeterministic = False IsSystemVerified = True IsPrecise = True SystemDataAccess = False
答案:A
第9题
你要使用Microsoft SQL Server 2008开发一个数据库。该数据库包含图中所示的表。你需要实现,如果零件属于套件, 那么应防止删除这些零件。 如果零件属于套件, 那么不应发生删除操作, 并且该行的IsDeleted列不应更改为 “True” 。 如果零件不属于套件,那么可以删除零件。下面的Transact-SQL语句将在触发器中使用: UPDATE p SET IsDeleted = 1 FROM KitPart kpJOIN deleted d ON kp.PartID = d.PartIDJOIN Part p ON kp.PartID = p.PartID; DELETE FROM p FROM Part pJOIN deleted d ON p.PartID = d.PartIDLEFT OUTER JOIN KitPart kp ON p.PartID = kp.PartID WHERE kp.KitID IS NULL; 你需要在触发器中实现该Transact-SQL语句。应使用哪个触发器语法?
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
答案:B
第10题
你有名为Products和OrderDetails的表。Products表与OrderDetails表有基于ProductID列的外键关系。你有下面的 Transact-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. –将从Products表删除产品。 --订单详细信息将插入OrderDetails表。
B. –将从Products表删除产品。 --订单详细信息不会插入OrderDetails表。
C. –不会从Products表删除产品。 --订单详细信息将插入OrderDetails表。
D. –不会从Products表删除产品。 --订单详细信息不会插入OrderDetails表。
答案:D
第11题
你有一个名为Orders的表。你的任务是修改公司主数据库,以删除所有无效的订单行。你正要开发一个存储过程用 来删除这些行。你编写了下面的代码片段来完成此任务。(包含的行号仅供参考。) 01 02 03 04 05 06 07 08 09 10 11 12 BEGIN TRY DECLARE @RowCount INT = 1000WHILE @RowCount = 1000BEGIN
DELETE TOP (1000) FROM Orders WHERE Status = ’Inactive’;SET @RowCount = @@ROWCOUNT ... END END TRY BEGIN CATCH PRINT ERROR_MESSAGE() END CATCH
你需要插入一条Transact-SQL语句,该语句在每批行删除之后立即通知你。应在第07行插入哪句Transact-SQL语句?
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
答案:C
第12题
你在编写一个批处理,其中包含修改现有产品的多条UPDATE语句。你将这些更新放在一个显式事务中。你需要在 事务开始时设置一个选项,如果事务中的任何更新失败,该选项将回滚所有更改。应启用哪个选项?
A. ARITHABORT
B. XACT_ABORT
C. IMPLICIT_TRANSACTIONS
D. REMOTE_PROC_TRANSACTIONS
答案:B
第13题
你有名为Sales.SalesOrderHeader和Person.Person的表。你的任务是编写一个查询来返回OrderDate大于20040101的 SalesOrderID和SalesPersonName。SalesPersonName应是将Person.Person表中的FirstName列和LastName列合并而成。 你需要编写查询来按字母表顺序返回FirstName和LastName合并的数据。应使用哪一条Transact-SQL语句?
A. SELECT SalesOrderID, FirstName + ’ ’ + LastName as SalesPersonName FROM Sales. SalesOrderHeader H JOIN Person.Person P on 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 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 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 BusinessEntityID = H.SalesPersonID WHERE OrderDate > ’20040101’ ORDER BY SalesPersonName DESC
答案:C
第14题
你有一个名为Sales.PotentialClients的表。此表有名为EmailAddress的列。你的任务是开发一个报表,报表从 Sales.PotentialClients中返回有效的“.com”电子邮件地址。有效电子邮件地址在@符号前面至少有一个字符,在@符 号后面和“.com”之前至少有一个字符。你需要编写一条Transact-SQL语句来返回符合该业务要求的数据。应使用 哪一条Transact-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’
D. select * from Sales.PotentialClients where EmailAddress like ’%@%[.]com’
答案:A
第15题
你有一个名为Orders的表。OrderID定义为IDENTITY(1,1)。OrderDate默认值为1。 你需要编写查询将新订单插入Orders表,该订单的CustomerID为45,日期是今天,成本为89.00。应使用哪条语句?
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