【正文】
你必須允許盡量多的人在同一時(shí)間訪問數(shù)據(jù)。你應(yīng)該如何設(shè)計(jì)游標(biāo)?A 創(chuàng)建一個(gè)游標(biāo)包含在顯式事務(wù),并設(shè)置事務(wù)隔離級(jí)別在RepeatablereadB 創(chuàng)建一個(gè)使用樂觀并發(fā)游標(biāo)并定位更新。在游標(biāo)中,放置立即更新語句在顯式事務(wù)中C 創(chuàng)建一個(gè)使用樂觀并發(fā)游標(biāo)。在游標(biāo)中,使用UPDATE語句詳細(xì)說明在WHERE語句中需要被更新的關(guān)鍵行,并把UPDATE語句放置到隱性事務(wù)中D 創(chuàng)建一個(gè)使用定位更新的游標(biāo)。并且在游標(biāo)的定義中使用包含SCROLL_LOCKS輔助信息來強(qiáng)迫執(zhí)行悲觀并發(fā)。在游標(biāo)中,在隱性事務(wù)游標(biāo)中放置定位更新。答案: B.在使用游標(biāo)是有兩個(gè)選項(xiàng),樂觀并發(fā)optimistic concurrency和悲觀并發(fā)pessimistic concurrency;若用戶使用樂觀并發(fā)選項(xiàng)打開游標(biāo),沒有鎖控制其中的行,這將有助于最大化其處理能力。SCROLL LOCKS選項(xiàng)實(shí)現(xiàn)悲觀并發(fā)控制,在把數(shù)據(jù)庫的行讀入游標(biāo)結(jié)果集時(shí),應(yīng)用程序?qū)⒃噲D鎖定數(shù)據(jù)庫行。阻止任何其它任務(wù)獲取更新鎖或排它鎖,從而阻止其它任務(wù)更新該行。38.你是一家公司的數(shù)據(jù)庫開發(fā)人員,該公司正在進(jìn)行一項(xiàng)消費(fèi)者音樂喜好的電話調(diào)查,當(dāng)調(diào)查參與者的調(diào)查結(jié)果被反饋回來時(shí),這些調(diào)查信息就會(huì)被插入到表SurveyData 中。當(dāng)所有的調(diào)查信息都收回后,調(diào)查結(jié)果的概要就產(chǎn)生了。你被要求通過取樣每五行的調(diào)查信息來創(chuàng)建一個(gè)概要。你需要盡可能快的產(chǎn)生概要,你該怎么做?A. 使用游標(biāo)來檢索所有的調(diào)查數(shù)據(jù),使用FETCH RELATIVE 5語句從游標(biāo)中選擇概要數(shù)據(jù)B. 使用SELECT INTO語句來檢索調(diào)查數(shù)據(jù)到臨時(shí)表中,使用SELECT TOP 1語句從臨時(shí)表中檢索第一行C. 設(shè)置查詢的行數(shù)為5,使用一個(gè)SELECT語句來檢索和總結(jié)調(diào)查數(shù)據(jù)D. 使用SELECT TOP 5語句來檢索并總結(jié)調(diào)查數(shù)據(jù)答案: A.FETCH RELATIVE 5是在當(dāng)前游標(biāo)中提取出相對(duì)于當(dāng)前行的后(前)5行,并將游標(biāo)指針轉(zhuǎn)移到提取行上。39.你是一家木材公司的數(shù)據(jù)庫開發(fā)者。 你正在執(zhí)行一個(gè)移動(dòng)的操作從一個(gè)平面文件數(shù)據(jù)庫到 SQL Server 2000 。1111, ‘*4 Interior’, 4, ‘Interior Lumber’, 1112, ‘2*4 Exterior’, 5, ‘Exterior Lumbar’, 2001, ‘16d galvanized’,2, ‘Bulk Nails’, 2221, ‘8d Finishing brads’,3, ‘Nails’, 你需要把這個(gè)文件輸入到表名為 Product和tegory的 SQL Server表中,Product 和 Category表如圖所示:你想要使用最少量的管理工作來輸入數(shù)據(jù)。 你應(yīng)該做什么?(數(shù)據(jù)轉(zhuǎn)換服務(wù))A. 使用 bcp 實(shí)用程序, 而且指定t 選項(xiàng)。B. 使用大容量插入語句, 而且指定 FIRE_TRIGGERS C. 使用 SQL DMO BulkCopy2 對(duì)象而且設(shè)置TableLock 屬性為TURE。D. 使用數(shù)據(jù)轉(zhuǎn)換服務(wù)創(chuàng)建兩個(gè)個(gè)數(shù)據(jù)轉(zhuǎn)換任務(wù)。對(duì)于每個(gè)任務(wù),把文本文件那一列映射到數(shù)據(jù)庫列中。答案: D.要將文本文件中的數(shù)據(jù)導(dǎo)入到SQL Server表中,并且還要將關(guān)聯(lián)數(shù)據(jù)映象到聯(lián)接的表中,只能采用數(shù)據(jù)轉(zhuǎn)換服務(wù),創(chuàng)建兩個(gè)轉(zhuǎn)換任務(wù)。bcp 實(shí)用工具是用在數(shù)據(jù)文件之間以用戶指定的格式復(fù)制數(shù)據(jù)40.你是Woodgrove銀行中一個(gè)名為Account數(shù)據(jù)庫的開發(fā)者。一位開發(fā)人員為銀行創(chuàng)建了一個(gè)多層的應(yīng)用程序。銀行的職員將使用這個(gè)應(yīng)用程序來管理用戶帳戶。開發(fā)者需要從accounts數(shù)據(jù)庫檢索客戶名字放到應(yīng)用程序的下拉列表框中。 應(yīng)用程序的用戶將會(huì)使用列表框找出客戶帳戶。數(shù)據(jù)庫包含超過 50,000個(gè)客戶帳戶,開發(fā)者想要通過列表框只取回 25行作為使用者的目錄。 當(dāng)前用戶應(yīng)在任何時(shí)候得到這個(gè)目錄。當(dāng)執(zhí)行dropdown 列表時(shí), 你需要為開發(fā)者推薦一個(gè)使用策略。你應(yīng)該推薦什么?(API服務(wù)器游標(biāo))A. 創(chuàng)建一個(gè)存儲(chǔ)過程來取得要被載入表格的數(shù)據(jù)。B. 使用一個(gè) API serverside游標(biāo)(API服務(wù)器游標(biāo))取回要被載入表格的數(shù)據(jù)。C. 使用SELECT語句立刻取回所有的數(shù)據(jù), 然后將數(shù)據(jù)載入表格之內(nèi)。D. 使用 SQL事務(wù) serverside游標(biāo)檢索被載入表格的數(shù)據(jù)。答案: B.使用API服務(wù)器游標(biāo),支持 OLE DB、ODBC 和 DBLibrary 中的 API 游標(biāo)函數(shù)。API 服務(wù)器游標(biāo)在服務(wù)器上實(shí)現(xiàn)。每次客戶應(yīng)用程序調(diào)用 API 游標(biāo)函數(shù)時(shí),SQL Server OLE DB 提供程序、ODBC 驅(qū)動(dòng)程序或 DBLibrary 動(dòng)態(tài)鏈接庫(DLL)就把請(qǐng)求傳送到服務(wù)器,以便對(duì) API 服務(wù)器游標(biāo)進(jìn)行操作。41.你是Litware,Inc的數(shù)據(jù)庫開發(fā)者。你正在修改該公司的sales數(shù)據(jù)庫結(jié)構(gòu)。該數(shù)據(jù)庫將客戶信息儲(chǔ)存在Customers的表中。該表包含一個(gè)字段Country,其儲(chǔ)存了客戶所在的國(guó)家。你又創(chuàng)建一個(gè)新表Country。創(chuàng)建Customer和Country表的語法如下所示:CREATE TABLE (CountryID int IDENTITY(1,1) NOT NULL,CountryName char(20) NOT NULL,CONSTRAINT PK_Country PRIMARY KEY CLUSTERED (CountryID))CREATE TABLE (CustomerID int NOT NULL,CustomerName char(30) NOT NULL,Country char(20) NULL,CONSTRAINT PK_Customers PRIMARY KEY CLUSTERED (CustomerID))你要盡可能快地將Customer表里頭Country的信息轉(zhuǎn)移到新Country表,該選用下面的哪條語句?A. INSERT INTO Country (CountryName)SELECT DISTINCT CountryFROM CustomersB. SELECT (*) AS ColID, INTO CountryFROM (SELECT DISTINCT Country FROM Customers)AS c1,(SELECT DISTINCT Country FROM Customers) AS c2,WHERE =GROUP BY ORDER BY 1C. DECLARE @Country char (20)DECLARE cursor_country CURSORFOR SELECT Country FROM CustomersOPEN cursor_countryFETCH NEXT FROM cursor_country INTO @CountryWHILE (@@FETCH_STATUS 1)BEGINIf NOT EXISTS (SELECT CountryIDFROM CountryWHERE CountryName = @Country)INSERT INTO Country (CountryName) VALUES (@Country)FETCH NEXT FROM cursor_country INTO @CountryENDCLOSE cursor_countryDEALLOCATE cursor_countryD. DECLARE @SQL varchar (225)SELECT @SQL = ‘bcp “SELECT ColID = COUNT(*), c1. Country’ +‘FROM (SELECT DISTINCT Country FROM Sales..Customers) ASc1, 39。 +(SELECT DISTINCT Country FROM Sales..Customers) AS c2 39。+WHERE = ’ +‘GROUP BY ORDER BY 1’ +‘query out c:\ c’EXEC master..xp_cmdshell @SQL, no_outputEXEC master..xp_cmdshell ‘bcp Sales..Country in c:\country. Txtc’, no_output答案:C使用游標(biāo)可以解決在customer表中找到country為空的行時(shí)跳過該行。42.你是Contoso,Ltd 的數(shù)據(jù)庫開發(fā)者。公司有一數(shù)據(jù)庫HumanResources存儲(chǔ)著所有員工及辦公室位置信息。該庫也存儲(chǔ)著潛在員工及辦公室的位置信息。包含這些信息的表如下所示:當(dāng)前員工都分配有一個(gè)位置,當(dāng)前位置都安排有一或多個(gè)員工。潛在員工則還沒分配位置,潛在位置也都還未安排員工。你要?jiǎng)?chuàng)建一個(gè)報(bào)告顯示所有當(dāng)前及潛在的員工和辦公室位置。你需列出已分配每一當(dāng)前及潛在位置以及分配在這個(gè)位置上的員工,潛在員工也應(yīng)一起列出來。你該選哪個(gè)語句?(外聯(lián)接的使用)A. SELECT , , FROM Employee AS e LEFT OUTER JOIN Location AS 1ON = ORDER BY , , B. SELECT , , FROM Location AS 1 LEFT OUTER JOIN EMPLOYEE AS 1ON = ORDER BY , , C. SELECT , , FROM Employee AS e FULL OUTER JOIN Location AS 1ON = ORDER BY , , D. SELECT , , FROM Employee AS e CROSS JOIN Location AS 1ORDER BY , , E. SELECT , , FROM Employee AS e, Location AS 1ORDER BY , , 答案: C.43.你是一個(gè)網(wǎng)上定票數(shù)據(jù)庫開發(fā)者。每次活動(dòng)的可用票有500或更多。大部分的申請(qǐng)用戶在購買票之前可查閱到的不多于50張。然而,須讓用戶看到整個(gè)可用票的清單。一旦用戶定了票,票據(jù)清單須被更新以反映那些被定走了的票。用戶才可以從清單里頭選票、購票。你要讓用戶查閱并購買可用票。你該怎么做?(靜態(tài)游標(biāo)和動(dòng)態(tài)游標(biāo)的區(qū)別)使用光標(biāo)定位升級(jí)購票B.使用可移動(dòng)動(dòng)態(tài)游標(biāo)去檢索票據(jù)清單 使用光標(biāo)定位更新購票系統(tǒng)C.使用存儲(chǔ)過程檢索票據(jù)清單 再用存儲(chǔ)過程購票D.使用用戶定義函數(shù)檢索票據(jù)清單 再用存儲(chǔ)過程購票答案:B靜態(tài)游標(biāo)的完整結(jié)果集在游標(biāo)打開時(shí)建立在 tempdb 中。靜態(tài)游標(biāo)總是按照游標(biāo)打開時(shí)的原樣顯示結(jié)果集。游標(biāo)并不反映在數(shù)據(jù)庫中所做的任何影響結(jié)果集成員的更改,也不反映會(huì)使組成結(jié)果集的行的列值發(fā)生變化的更改。動(dòng)態(tài)游標(biāo)與靜態(tài)游標(biāo)相對(duì)。當(dāng)滾動(dòng)游標(biāo)時(shí),動(dòng)態(tài)游標(biāo)反映結(jié)果集中所做的所有更改。結(jié)果集中的行數(shù)據(jù)值、順序和成員在每次提取時(shí)都會(huì)改變。所有用戶做的全部 UPDATE、INSERT 和 DELETE 語句均通過游標(biāo)可見。44.你是一數(shù)據(jù)庫顧問。你被一家本地狗飼養(yǎng)場(chǎng)雇用來開發(fā)數(shù)據(jù)庫。該數(shù)據(jù)庫用來存儲(chǔ)他養(yǎng)的狗的信息。你用下列語句創(chuàng)建一個(gè)表Dogs:CREATE TABLE[dbo].[Dogs]([DogID] [int] NOT NULL,[BreedID] [int] NOT NULL,[DateofBirth] [datetime] NOT NULL,[WeightAtBirth] [decimal] (5, 2) NOT NULL,[NumberOfSiblings] [int] NULL,[MotherID] [int] NOT NULL,[FatherID] [int] NOT NULL ) ON [PRIMARY]GOALTER TABLE [dbo].[Dogs] WITH NOCHECK ADDCONSTRAINT [PK_Dogs]PRIMARY KEY CLUSTERED([DogID]) ON [PRIMARY]GO你須保證每條狗的MotherID和FatherID列都有有效值。你想在保證最小化磁盤I/O的條件下執(zhí)行這個(gè)規(guī)則。你該怎么做? INSERT 觸發(fā)器回滾MotherID和FatherID無效的事務(wù)。:一個(gè)在MotherID上,另一個(gè)在FatherID上,且兩個(gè)的主鍵都是DogID。,把它綁到MotherID和FatherID上。答案:C45.你是一個(gè)公司的數(shù)據(jù)庫開發(fā)者。公司將其員工信息儲(chǔ)存于表Employee。創(chuàng)建Employee表的語句如下:CREATE TABLE Employee(EmployeeID int NOT NULL。EmpType char (1) NOT NULL,EmployeeName char (50) NOT NULL,Address char (50) NULL,Phone char (20) NULL,CONSTRAINT PK_Employee PRMARY KEY (Employee ID))該表里的EmpType列用來識(shí)別員工為主管、管理階層或顧問。你要讓管理階層的員工只能添加、修改、刪除非主管職員的信息。你該怎么做?,包含WITH ENCRYPTION 選項(xiàng),包含WITH CHECK OPTION 選項(xiàng),包含SCHEMABINDING選項(xiàng),其中再建一個(gè)索引。答案:B46.你是某電力公司的數(shù)據(jù)庫開發(fā)人員,當(dāng)客戶在聲明的預(yù)定日期內(nèi)沒有支付帳單金額,此金額就要每天增加1%