SQL认证带答案复习题.docx
- 文档编号:9692958
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:48
- 大小:94.05KB
SQL认证带答案复习题.docx
《SQL认证带答案复习题.docx》由会员分享,可在线阅读,更多相关《SQL认证带答案复习题.docx(48页珍藏版)》请在冰豆网上搜索。
SQL认证带答案复习题
补充习题
第1题
你有一个名为John的用户。
他对Sales架构有SELECT访问权。
你需要从Sales.SalesOrder表消除John的SELECT访问权,但又不能影响他的其他权限。
应使用哪一条Transact-SQL语句?
A.DROPUSERJohn;
B.DENYSELECTONSales.SalesOrderTOJohn;
C.GRANTDELETEONSales.SalesOrderTOJohn;
D.REVOKESELECTONSales.SalesOrderFROMJohn;()
答案:
B
deny,拒绝授予主体权限,防止主体通过其组或角色成员身份继承权限。
revoke,取消以前授予或拒绝了的权限。
比如:
如果John属于db_datareader数据库角色,D选项,仅仅是取消了显示授予John的select权限;但John同样可以通过db_datareader角色获得读取Sales.SalesOrder表的权限;
而如果使用B选项,则可以彻底禁止John读取Sales.SalesOrder表,因为在评估权限时,deny优先于通过其他任何方式获取的权限。
第2题
你的数据库有5GB,并包含名为SalesHistory的表。
表中频繁插入和更新销售信息。
你发现发生了过度页拆分。
你需要确保减少SalesHistory表的页拆分。
应使用哪个代码片段?
A.ALTERDATABASESalesMODIFYFILE(NAME=Salesdat3,SIZE=10GB);
B.ALTERINDEXALLONSales.SalesHistoryREBUILDWITH(FILLFACTOR=60);
C.EXECsys.sp_configure'fillfactor(%)','60';
D.UPDATESTATISTICSSales.SalesHistory(Products)WITHFULLSCAN,NORECOMPUTE;
答案:
B
第3题
你有一个名为dbo.Customers的表。
该表是使用下面的Transact-SQL语句创建的:
CREATETABLEdbo.Customers(CustomerIDintIDENTITY(1,1)PRIMARYKEYCLUSTERED,AccountNumbernvarchar(25)NOTNULL,FirstNamenvarchar(50)NOTNULL,LastNamenvarchar(50)NOTNULL,AddressLine1nvarchar(255)NOTNULL,AddressLine2nvarchar(255)NOTNULL,Citynvarchar(50)NOTNULL,StateProvincenvarchar(50)NOTNULL,Countrynvarchar(50)NOTNULL,PostalCodenvarchar(50)NOTNULL,CreateDatedatetimeNOTNULLDEFAULT(GETDATE()),ModifiedDatedatetimeNOTNULLDEFAULT(GETDATE()))
你创建了一个存储过程,其中包含dbo.Customers表的AccountNumber、Country和StateProvince列。
该存储过程接受一个参数来根据AccountNumber列筛选输出。
你需要优化该存储过程的性能。
你不得更改现有表结构。
应使用哪一条Transact-SQL语句?
A.CREATESTATISTICSST_Customer_AccountNumberONdbo.Customer(AccountNumber)WITHFULLSCAN;
B.CREATECLUSTEREDINDEXIX_Customer_AccountNumberONdbo.Customer(AccountNumber);
C.CREATENONCLUSTEREDINDEXIX_Customer_AccountNumberONdbo.Customer(AccountNumber)WHEREAccountNumber='';
D.CREATENONCLUSTEREDINDEXIX_Customer_AccountNumberONdbo.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'被视作不同的值
ORDERBY子句中'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)以及指定为“bitNOTNULL”数据类型的用户类型。
你计划将多个表的数据整合为一个表。
该表将利用SPARSE选项来使用半结构化存储。
你的任务是确定与SPARSE选项兼容的数据类型。
哪个数据类型与SPARSE选项兼容?
A.text
B.geometry
C.varchar(max)
D.定义为'bitNOTNULL'的用户定义类型
答案:
C
第7题
你需要创建一个存储过程,该过程接受名为@Customers的表值参数。
应使用哪个代码片段?
A.CREATEPROCEDUREAddCustomers(@Customersvarchar(max))
B.CREATEPROCEDUREAddCustomers(@CustomersCustomerREADONLY)
C.CREATEPROCEDUREAddCustomers(@CustomersCustomerTypeOUTPUT)
D.CREATEPROCEDUREADDCUSTOMERS(@Customersvarchar(max))ASEXTERNALNAMECustomer.Add.NewCustomer
答案:
B
第8题
你有一个用用户定义函数实现的计算列。
该用户定义函数返回一个格式化的帐号。
必须为该列建索引,以提供足够的搜索性能。
你计划对该计算列创建索引。
你需要确定该用户定义函数的ObjectPropertyEX值的有效组合。
应使用哪种组合?
A.IsDeterministic=TrueIsSystemVerified=TrueUserDataAccess=FalseSystemDataAccess=False
B.IsDeterministic=TrueIsSystemVerified=TrueIsPrecise=TrueIsTableFunction=True
C.IsDeterministic=FalseIsSystemVerified=TrueUserDataAccess=FalseSystemDataAccess=False
D.IsDeterministic=FalseIsSystemVerified=TrueIsPrecise=TrueSystemDataAccess=False
答案:
A
第9题
你要使用MicrosoftSQLServer2008开发一个数据库。
该数据库包含图中所示的表。
你需要实现,如果零件属于套件,那么应防止删除这些零件。
如果零件属于套件,那么不应发生删除操作,并且该行的IsDeleted列不应更改为“True”。
如果零件不属于套件,那么可以删除零件。
下面的Transact-SQL语句将在触发器中使用:
UPDATEpSETIsDeleted=1FROMKitPartkpJOINdeleteddONkp.PartID=d.PartIDJOINPartpONkp.PartID=p.PartID;DELETEFROMpFROMPartpJOINdeleteddONp.PartID=d.PartIDLEFTOUTERJOINKitPartkpONp.PartID=kp.PartIDWHEREkp.KitIDISNULL;
你需要在触发器中实现该Transact-SQL语句。
应使用哪个触发器语法?
图示:
A.CREATETRIGGERtr_Part_dONPartAFTERDELETEASBEGINEND
B.CREATETRIGGERtr_Part_dONPartINSTEADOFDELETEASBEGINEND
C.CREATETRIGGERtr_KitPart_dONKitPartAFTERDELETEASBEGINEND
D.CREATETRIGGERtr_KitPart_dONKitPartINSTEADOFDELETEASBEGINEND
答案:
B
第10题
你有名为Products和OrderDetails的表。
Products表与OrderDetails表有基于ProductID列的外键关系。
你有下面的Transact-SQL批处理:
BEGINTRY
BEGINTRANSACTIONDELETEFROMProductsWHEREProductID=5;BEGINTRANSACTION
INSERTINTOOrderDetails(OrderID,ProductID,Quantity)VALUES(1234,5,12);COMMITTRANSACTION
COMMITTRANSACTIONENDTRYBEGINCATCHROLLBACKTRANSACTIONPRINTERROR_MESSAGE();ENDCATCH
你需要分析执行此批处理的结果。
预期的结果应该是什么?
A.–将从Products表删除产品。
--订单详细信息将插入OrderDetails表。
B.–将从Products表删除产品。
--订单详细信息不会插入OrderDetails表。
C.–不会从Products表删除产品。
--订单详细信息将插入OrderDetails表。
D.–不会从Products表删除产品。
--订单详细信息不会插入OrderDetails表。
答案:
D
第11题
你有一个名为Orders的表。
你的任务是修改公司主数据库,以删除所有无效的订单行。
你正要开发一个存储过程用来删除这些行。
你编写了下面的代码片段来完成此任务。
(包含的行号仅供参考。
)
01
020304
BEGINTRY
DECLARE@RowCountINT=1000WHILE@RowCount=1000BEGIN
050607
DELETETOP(1000)FROMOrdersWHEREStatus='Inactive';SET@RowCount=@@ROWCOUNT...
08
END
09
ENDTRY
10
BEGINCATCH
11PRINTERROR_MESSAGE()
12ENDCATCH
你需要插入一条Transact-SQL语句,该语句在每批行删除之后立即通知你。
应在第07行插入哪句Transact-SQL语句?
A.RAISERROR('Deleted%irows',6,1,@RowCount)
B.RAISERROR('Deleted%irows',16,1,@RowCount)
C.RAISERROR('Deleted%irows',10,1,@RowCount)WITHNOWAIT
D.RAISERROR('Deleted%irows',11,1,@RowCount)WITHNOWAIT
答案:
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.SELECTSalesOrderID,FirstName+''+LastNameasSalesPersonNameFROMSales.SalesOrderHeaderHJOINPerson.PersonPonBusinessEntityID=H.SalesPersonIDWHEREOrderDate>'20040101'ORDERBYFirstNameASC,LastNameASC
B.SELECTSalesOrderID,FirstName+''+LastNameasSalesPersonNameFROMSales.SalesOrderHeaderHJOINPerson.PersonPonBusinessEntityID=H.SalesPersonIDWHEREOrderDate>'20040101'ORDERBYFirstNameDESC,LastNameDESC
C.SELECTSalesOrderID,FirstName+''+LastNameasSalesPersonNameFROMSales.SalesOrderHeaderHJOINPerson.PersonPonBusinessEntityID=H.SalesPersonIDWHEREOrderDate>'20040101'ORDERBYSalesPersonNameASC
D.SELECTSalesOrderID,FirstName+''+LastNameasSalesPersonNameFROMSales.SalesOrderHeaderHJOINPerson.PersonPonBusinessEntityID=H.SalesPersonIDWHEREOrderDate>'20040101'ORDERBYSalesPersonNameDESC
答案:
C
第14题
你有一个名为Sales.PotentialClients的表。
此表有名为EmailAddress的列。
你的任务是开发一个报表,报表从Sales.PotentialClients中返回有效的“.com”电子邮件地址。
有效电子邮件地址在@符号前面至少有一个字符,在@符号后面和“.com”之前至少有一个字符。
你需要编写一条Transact-SQL语句来返回符合该业务要求的数据。
应使用哪一条Transact-SQL语句?
A.select*fromSales.PotentialClientswhereEmailAddresslike'_%@_%.com'
B.select*fromSales.PotentialClientswhereEmailAddresslike'%@%.com'
C.select*fromSales.PotentialClientswhereEmailAddresslike'_%@_.com'
D.select*fromSales.PotentialClientswhereEmailAddresslike'%@%[.]com'
答案:
A
第15题
你有一个名为Orders的表。
OrderID定义为IDENTITY(1,1)。
OrderDate默认值为1。
你需要编写查询将新订单插入Orders表,该订单的CustomerID为45,日期是今天,成本为89.00。
应使用哪条语句?
图示:
A.INSERTINTOOrders(CustomerId,OrderDate,Cost)VALUES(45,DEFAULT,89.00);
B.INSERTINTOOrders(OrderID,CustomerId,OrderDate,Cost)VALUES(1,45,DEFAULT,89.00);
C.INSERTINTOOrders(CustomerId,OrderDate,Cost)VALUES(45,CURRENT_TIMESTAMP,89.00);
D.INSERTINTOOrders(OrderID,CustomerId,OrderDate,Cost)VALUES(1,45,CURRENT_TIMESTAMP,89.00);
答案:
C
第16题
你有下面两个表。
这两个表之间的外键关系启用了CASCADEDELETE。
你需要从Orders表删除所有记录。
应使用哪一条Transact-SQL语句?
图示:
A.DROPTABLEOrders
B.DELETEFROMOrders
C.TRUNCATETABLEOrders
D.DELETEFROMOrderDetails
答案:
B
第17题
你的任务是从名为NewWidgets的表删除1000行。
有2000行的ToBeDeleted列设置为1。
你需要编写一个Transact-SQL批处理来准确删除1000行。
应使用哪个Transact-SQL批处理?
A.DELETETOP(1000)dbo.NewWidgetsWHEREToBeDeleted=1;
B.DECLARE@BatchSizeINT=10;
WHILE(@BatchSize=10)DELETETOP(@BatchSize)dbo.NewWidgetsWHEREToBeDeleted=1;
C.DELETETOP((SELECTCOUNT(*)FROMdbo.NewWidgetsWHEREToBeDeleted=1))wFROMdbo.NewWidgetswWHEREw.ToBeDeleted=1;
D.DECLARE@TotalRowCountINT=0;
WHILE(@TotalRowCount<=1000)BEGINDELETETOP(10)dbo.NewWidgetsWHEREToBeDeleted=1;
SET@TotalRowCount+=@@ROWCOUNT;
END
答案:
A
第18题
你有两个表dbo.Products和dbo.PriceChange。
dbo.Products表包含10种产品。
五种产品的单价为$20,PriceIncrease(价格增量)设置为1。
其他五种产品的单价为$10,PriceIncrease(价格增量)设置为0。
你有下面的查询:
INSERTdbo.PriceChange(ProductID,Change,ChangeDate)SELECTProductID,inPrice-delPrice,SYSDATETIME()FROM(UPDATEdbo.ProductsSETPrice*=1.1OUTPUTinserted.ProductID,inserted.Price,deleted.PriceWHEREPriceIncrease=1)p(ProductID,inPrice,delPrice);
你需要预测查询结果。
该查询应生成什么结果?
A.dbo.Products中五行更新。
五行插入dbo.PriceChange。
B.dbo.Products中五行更新。
没有行插入dbo.PriceChange。
C.dbo.Products中无行更新。
五行插入dbo.PriceChange。
D.dbo.Products中无行更新。
没有行插入dbo.PriceChange。
答案:
A
第19题
你有下面两个表。
Products
ProductID
ProductName
VendorID
1
Product1
0
2
Product2
1
3
Product3
1
4
Product4
0
ProductChanges
ProductID
ProductName
VendorID
1
Product1
1
2
Product2
1
3
NewProduct3
2
5
Product5
1
你执行了下面的语句。
MERGEProductsUSINGProductChangesON(Products.ProductID=ProductChanges.ProductID)WHENMATCHEDANDProducts.VendorID=0THENDELETEWHENMATCHEDTHENUPDATESETProducts.ProductName=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 认证 答案 复习题