Designing And Implementing Databases With SQL Server 2000

40 Questions | Total Attempts: 341

SettingsSettingsSettings
Microsoft Certification Quizzes & Trivia

Practice Questions for MCDA Exam 70-229: Designing and Implementing Databases with Microsoft SQL Server 2000 Enterprise Edition. This also applies as credit towards MCSD (Microsoft Certified Solution Developer)and Microsoft Certified Application Developer (MCAD)


Related Topics
Questions and Answers
  • 1. 
    You are a database developer for wide world importers. You are creating a database that will store order information. Orders will be entered in a client/server application. Each time a new order is entered, a unique order number must be assigned. Order numbers must be assigned in ascending order. An average of 10, 000 orders will be entered each day. You create a new table named Orders and add an OrderNumber column to this table. What should you do next?
    • A. 

      Set the data type of the column to uniqueidentifier.

    • B. 

      Set the data type of the column to int. Create a user-defined function that selects the maximum order number in the table.

    • C. 

      Set the data type of the column to int. Create a NextKey table, and add a NextOrder column to the table. Set the data type of the NextOrder column to int. Create a stored procedure to retrieve and update the value held in the NextKey.

    • D. 

      Set the data type of the column to int, and set the IDENTITY property for the column.

  • 2. 
    You are a database developer for a technical training center. Currently, administrative employees keep records of students, instructors, courses, and classroom assignments only on paper. The training center wants to eliminate the use of paper to keep records by developing a database to record this information. You design the tables for this database. Your design is shown in the exhibit. You want to promote quick response times for queries and minimize redundant data. What should you do?
    • A. 

      Move all the columns from the Classroom table to the Courses table, and drop the Classroom table.

    • B. 

      Create a new table named Instructors. Include an InstructorID column, and InstructorName column, and an OfficePhone column. Add an InstructorID column to the Courses table.

    • C. 

      Remove the PRIMARY KEY constraint from the Courses table, and replace the PRIMARY KEY constraint with a composite PRIMARY KEY constraint based on the CourseID and CourseTitle.

    • D. 

      Remove the ClassroomID column, and base the PRIMARY KEY constraint on the ClassroomNumber and ClassTime columns.

  • 3. 
    You are designing a database that will contain customer orders. Customers will be able to order multiple products each time they place an order. You review the database design, which is shown in the exhibit. You want to promote quick response times for queries and minimize redundant data. What should you do? (Each correct answer presents part of the solution. Choose two.)
    • A. 

      Create a composite PRIMARY KEY constraint on the OrderID and ProductID columns of the Orders table.

    • B. 

      Create a new order table named OrderDetail. Add OrderID, ProductID, and Quantity columns to this table.

    • C. 

      Remove the ProductID and Quantity columns from the Orders table.

    • D. 

      Create a UNIQUE constraint on the OrderID column of the Orders table.

    • E. 

      Move the UnitPrice column from the Products table to the Orders table.

  • 4. 
    You are the database developer for a publishing company. You create the following stored procedure to report the year-to-date sales for a particular book title: CREATE PROCEDURE get_sales_for_title %title varchar(80), @ytd_sales int OUTPUT AS SELECT @ytd_sales = ytd_sales FROM titles WHERE title = @title IF @@ROWCOUNT = 0 RETURN(-1) ELSE RETURN(0) You are creating a script that will execute this stored procedure. If the stored procedure executes successfully, it should report the year-to-date sales for the book title. If the stored procedure fails to execute, it should report the following message: “No Sales Found” How should you create the script?
    • A. 

      DECLARE @retval int DECLARE @ytd int EXEC get_sales_for_title ‘Net Etiquette’, @ytd IF @retval < 0 PRINT ‘No sales found’ ELSE PRINT ‘Year to date sales: ’ + STR (@ytd) GO

    • B. 

      DECLARE @retval int DECLARE @ytd int EXEC get_sales_for_title ‘Net Etiquette’, @ytd OUTPUT IF @retval < 0 PRINT ‘No sales found’ ELSE PRINT ‘Year to date sales: ’ + STR (@ytd) GO

    • C. 

      DECLARE @retval int DECLARE @ytd int EXEC get_sales_for_title ‘Net Etiquette’,@retval OUTPUT IF @retval < 0 PRINT ‘No sales found’ ELSE PRINT ‘Year to date sales: ’ + STR (@ytd) GO

    • D. 

      DECLARE @retval int DECLARE @ytd int EXEC @retval = get_sales_for_title ‘Net Etiquette’, @ytd OUTPUT IF @retval < 0 PRINT ‘No sales found’ ELSE PRINT ‘Year to date sales: ’ + STR (@ytd) GO

  • 5. 
    You are a database developer for a container manufacturing company. The containers produced by your company are a number of different sizes and shapes. The tables that store the container information are shown in the Size, Container, and Shape Tables exhibit. A sample of the data stored in the tables is shown in the Sample Data exhibit. Periodically, the dimensions of the containers change. Frequently, the database users require the volume of a container. The volume of a container is calculated based on information in the shape and size tables. You need to hide the details of the calculation so that the volume can be easily accessed in a SELECT query with the rest of the container information. What should you do?
    • A. 

      Create a stored procedure that requires ContainerID as an argument and returns the volume of the container

    • B. 

      Create a user-defined function that requires ContainerID as an argument and returns the volume of the container.

    • C. 

      Add a column named volume to the Container table. Create a trigger that calculates and store the volume in this column when a new container is inserted into the table.

    • D. 

      Add a computed column to the Container table that calculates the volume of the container.

  • 6. 
    You are a database developer for a hospital. There are four supply rooms on each floor of the hospital, and the hospital has 26 floors. You are designing an inventory control database for disposable equipment. Certain disposable items must be kept stored at all times. As each item is used, a barcode is scanned to reduce the inventory count in the database. The supply manager should be paged as soon as a supply room has less than the minimum quantity of an item. What should you do?
    • A. 

      Create a FOR UPDATE trigger on the inventory table. If the quantity in the inserted table is less than the restocking quantity, use the xp_sendmail system stored procedure to page the supply manager.

    • B. 

      Create a stored procedure that will be called to update the inventory table. If the resultant quantity is less than the restocking quantity, use the xp_logevent system stored procedure to page the supply manager.

    • C. 

      Create an INSTEAD OF UPDATE trigger on the inventory table. If the quantity in the inserted table is less than the restocking quantity, use SQLAgentMail to send an e-mail message to the supply manager’s pager.

    • D. 

      Schedule the SQL server job to run at four-hour intervals. Configure the job to use the @notify_level_page = 2 argument. Configure the job so that it tests each item’s quantity against the restocking quantity. Configure the job so that it returns a false value if the item requires restocking. This will trigger the paging of the supply manager.

  • 7. 
    You are a database developer for an online book retailer. Customers use the company’s web site to place orders for books. As orders are entered, they are inserted into a database named BookOrders. During a nightly batch process, the order information is transferred to a database named Reports. The Reports database includes a table named Order and a table named LineItem. The Order table contains basic information about the orders. The LineItem table contains information about the individual items in the orders. The Order and LineItem tables are shown in the exhibit. Customers must be able to use the company’s web site to view orders stored in the Reports database. Customers should be able to see only their own orders. Customers should not be able to modify the orders. The primary key values of the orders are not relevant to the customers and should not be visible. What should you do?
    • A. 

      Create a view that displays the order information for a customer.

    • B. 

      Create a scalar user-defined function that retrieves the order information for a customer.

    • C. 

      Grant SELECT permissions on the Order and LineItem tables to the customers.

    • D. 

      Create a stored procedure that retrieves the order information for a customer.

  • 8. 
    You are a database developer for a large travel company. Information about each of the company’s departments is stored in a table named Department. Data about each of the company’s travel agents and department managers is stored in a table named Employees. The SQLLogin column of the Employees table contains the database login for the travel agent or department manager. The Department and Employees table are shown in the exhibit. Each department manager has been added to the Managers database role. You need to allow members of this database role to view all of the data in the department table. Members of this role should be able to insert or update only the row that pertains to their department. You grant the Managers database role SELECT permissions on the Department table. What should you do next?
    • A. 

      Create a trigger on the Department table that checks whether the database login of the user performing the insert or update operation belongs to a member of that department.

    • B. 

      Include the WITH CHECK OPTION clause in the view definition.

    • C. 

      Create a view that includes all columns in the Department table and the SQLLogin column from the Employees table.

    • D. 

      Grant INSERT and UPDATE permissions on the Department table.

  • 9. 
    You are a database developer for a multinational corporation. The company has a centralized online transaction processing database located on a SQL Server 2000 computer. This database has a table named Sales, which contains consolidated sales information from the company’s offices. During the last year, more than 150,000 rows have been added to the Sales table. Users of the database report that performance during the course of the year has steadily decreased. You need to improve the performance of queries against the Sales table. In the SQL query analyzer, which script should you execute?
    • A. 

      CREATE STATISTICS Sales WITH FULLSCAN

    • B. 

      Sp_autostats ‘Sales’

    • C. 

      UPDATE STATISTICS Sales WITH FULLSCAN ALL

  • 10. 
    You are a database developer for your company’s SQL Server 2000 online transaction processing database. You have written several stored procedures that will produce critical sales reports. The stored procedures access existing tables, which are indexed. Before you put the stored procedures in the production environment, you want to ensure optimal performance of the new stored procedures. You also want to ensure that daily operations in the database are not adversely affected. What should you do?
    • A. 

      Create a covering index for each query contained in the stored procedures.

    • B. 

      For each query in the stored procedures, create an index that includes each column contained in the WHERE clause.

    • C. 

      Use output from the Index Tuning Wizard to identify whether indexes should be added.

    • D. 

      CREATE STATISTICS on all columns in the SELECT and WHERE clauses of each query.

  • 11. 
    You are a database developer for an insurance company. You are informed that database operations, such as selects, inserts, and updates, are taking much longer than they were when the database was created a year ago. The previous developer added necessary indexes on the tables when the database was created. Since that time, additional tables and stored procedures have been added to the database. In addition, many of the queries are no longer used. You want to improve the response time of the database operations as quickly as possible. What should you do?
    • A. 

      Execute the DBCC UPDATEUSAGE statement against the database to update the sysindexes system table.

    • B. 

      Execute the DBCC SHOW_STATISTICS statement to find high-density indexes. Drop the high-density indexes.

    • C. 

      Run the Index Tuning Wizard against a workload file to suggest indexes to create and drop the suggested indexes.

    • D. 

      Use SQL profiler to find table scans. Add indexes to tables that were found to have table scans.

  • 12. 
    You are a database developer for Proseware, Inc. You are creating a database named HumanResources for the company. This database will contain all employee records and demographics information. The company has 2,000 employees and experiences a yearly turnover rate of about 2 percent. When employees leave the company, all of their records must be retained for auditing purposes. Employee demographics information changes at a yearly rate of about 9 percent. You do not need to maintain a history of demographics changes. The schema for the human resources database is shown in the human resources schema exhibit, and the scripts that will be used to create the indexes are shown in the Index Scripts exhibit. HumanResources Schema: ALTER TABLE [dbo].[Employee] WITH NOCHECK ADD CONSTRAINT [pk_Employee] PRIMARY KEY CLUSTERED ([EmployeeID]) WITH FILLFACTOR = 90 GO ALTER TABLE [dbo].[EmployeeDemographics] WITH NOCHECK ADD CONSTRAINT [dbo].[EmployeeDemographics] PRIMARY KEY CLUSTERED ([EmployeeID]) WITH FILLFACTOR = 90 GO You want to conserve disk space and minimize the number of times that expansion of the database files needs to occur. All varchar columns are 50 percent full. Which two parameters should you specify for the CREATE DATABASE statement?
    • A. 

      SIZE = 1GB

    • B. 

      FILEGROWTH = 20

    • C. 

      FILEGROWTH = 5%

    • D. 

      SIZE= 2048KB

  • 13. 
    You are a database developer for your company’s SQL Server 2000 database. This database contains a table named Products and a table named Companies. You want to insert new product information from a linked server into the Products table. The Products table has a FOREIGN KEY constraint that references the Companies table. An UPDATE trigger is defined on the Products table. You want to load the data as quickly as possible. What should you do?
    • A. 

      Use the ALTER TABLE statement and the ON UPDATE clause to modify the Products table.

    • B. 

      Use the ALTER TABLE statement and the DISABLE TRIGGER ALL option to modify the Products table.

    • C. 

      Use the ALTER TABLE statement and the DISABLE TRIGGER ALL option to modify the Companies table.

    • D. 

      Use the ALTER TABLE statement and the NOCHECK CONSTRAINT option to modify the Companies table.

    • E. 

      Use the ALTER TABLE statement and the NOCHECK CONSTRAINT option to modify the Products table.

  • 14. 
    You are the database developer for your company’s Accounting database. The database contains a table named Employees. Tom is a member of the accounting department. Tom’s database user account has been denied SELECT permissions on the Salary and BonusPercentage columns of the Employees table. Tom has been granted SELECT permissions on all other columns in the table. Tom now requires access to all the data in the Employees table. What should you do?
    • A. 

      Grant SELECT permissions on the Salary and BonusPercentage columns of the Employees table for Tom’s database user account.

    • B. 

      Add Tom to the db_datareader database role.

    • C. 

      . Revoke SELECT permissions on the Salary and BonusPercentage columns of the Employees table for Tom’s database user account.

    • D. 

      Add Tom to the db_accessadmin database role.

  • 15. 
    You are a database developer for a toy manufacturer. Each employee of the company is assigned to either an executive, administrative, or labor position. The home page of the company intranet displays company news that is customized for each position type. When an employee logs on to the company intranet, the home page identifies the employee’s position type and displays the appropriate company news. Company news is stored in a table named News, which is located in the corporate database. The script that was used to create the News table is shown in the exhibit. CREATE TABLE News ( NewsID int NOT NULL, NewsText varchar (8000) NOT NULL, EmployeePositionType char (15) NOT NULL, DisplayUntil datetime NOT NULL, DateAdded datetime NOT NULL DEFAULT (getdate( )), CONSTRAINT PK_News PRIMARY KEY (NewsID) ) Users of the intranet need to view data in the News table, but do not need to insert, update, or delete data in the table. You need to deliver only the appropriate data to the intranet, based on the employee’s position type. What should you do?
    • A. 

      Create a stored procedure that returns the rows that apply to a specified position type.

    • B. 

      Create a view that is defined to return the rows that apply to a specified position type.

    • C. 

      Grant SELECT permissions on the EmployeePositionType column for each position type

    • D. 

      Grant permission on the News table for each position type.

  • 16. 
    You are a database developer for a company that produces an online telephone directory. A table named PhoneNumbers is shown in the exhibit. After loading 100,000 names into the table, you create indexes by using the following script: ALTER TABLE [dbo]. [PhoneNumbers] WITH NOCHECK ADD CONSTRAINT[PK_PhoneNumbers]PRIMARY KEY CLUSTERED ( [FirstName], [LastName], ) ON [PRIMARY] GO CREATE UNIQUE INDEX [IX_PhoneNumbers] ON [dbo].[PhoneNumbers]( [PhoneNumberID] ) ON [PRIMARY] GO You are testing the performance of the database. You notice that queries such as the following take a long time to execute: Return all names and phone numbers for persons who live in a certain city and whose last name begins with ‘W’ How should you improve the processing performance of these types of queries? Choose two
    • A. 

      Change the PRIMARY KEY constraint to use the LastName column followed by the FirstName column.

    • B. 

      Add a nonclustered index on the City column.

    • C. 

      Add a nonclustered index on the AreaCode, Exchange, and Number columns.

    • D. 

      Remove the unique index from the PhoneNumberID column.

    • E. 

      Change the PRIMARY KEY constraints to nonclustered indexes.

  • 17. 
    You are a database developer for an insurance company. You are tuning the performance of queries in SQL Query Analyzer. In the query pane, you create the following query: SELECT P.PolicyNumber, P.IssueState, AP.Agent FROM Policy AS P JOIN AgentPolicy AS AP ON (P.PolicyNumber = AP.PolicyNumber) WHERE IssueState = ‘IL’ AND PolicyDate BETWEEN ‘1/1/2000’ AND ‘3/1/2000’ AND FaceAmount > 1000000 You choose “Display estimated execution plan” from the query menu and execute the query. The query execution plan that is generated is shown in the estimated execution plan exhibit. What should you do?
    • A. 

      Rewrite the query to eliminate BETWEEN keyword.

    • B. 

      Add a join hint that includes the HASH option to the query.

    • C. 

      Add the WITH (INDEX(0)) table hint to the Policy table.

    • D. 

      Update statistics on the Policy table.

  • 18. 
    You are a database developer for a SQL Server 2000 database. You are planning to add new indexes, drop some indexes, and change other indexes to composite and covering indexes. For documentation purposes, you must create a report that shows the indexes used by queries before and after you make changes. What should you do?
    • A. 

      Execute each query in SQL Query Analyzer, and use the SHOWPLAN_TEXT option. Use the output for the report.

    • B. 

      Execute each query in SQL Query Analyzer, and use the Show Execution Plan option. Use output for the report

    • C. 

      Run the Index Tuning Wizard against a Workload file. Use the output for the report.

    • D. 

      Execute the DBCC SHOW_STATISTICS statement. Use the output for the report.

  • 19. 
    You are a database developer for a hospital. You are designing a SQL Server 2000 database that will contain physician and patient information. This database will contain a table named Physicians and a table named Patients. Physicians treat multiple patients. Patients have a primary physician and usually have a secondary physician. The primary physician must be identified as the primary physician. The Patients table will contain no more than 2 million rows. You want to increase I/O performance when data is selected from the tables. The database should be normalized to the third normal form. Which script should you use to create the tables?
    • A. 

      CREATE TABLE Physicians ( Physicians ID int NOT NULL CONSTRAINT PK_Physicians PRIMARY KEY CLUSTERED, LastName varchar(25) NOT NULL, ) GO CREATE TABLE Patients ( PatientID bigint NOT NULL CONSTRAINT PK_Patients PRIMARY KEY CLUSTERED, LastName varchar (25) NOT NULL, FirstName varchar (25) NOT NULL, PrimaryPhysician int NOT NULL, SecondaryPhysician int NOT NULL, CONSTRAINT PK_Patients_Physicians1 FOREIGN KEY (PrimaryPhysician) REFERENCES Physicians (PhysicianID), CONSTRAINT PK_Patients_Physicians2 FOREIGN KEY (SecondaryPhysician) REFERENCES Physicians (PhysicianID) )

    • B. 

      . CREATE TABLE Patients ( PatientID smallint NOT NULL CONSTRAINT PK_Patients PRIMARY KEY CLUSTERED, LastName varchar(25) NOT NULL, FirstName varchar (25) NOT NULL, PrimaryPhysician int NOT NULL, SecondaryPhysician int NOT NULL, ) GO CREATE TABLE Physicians ( PhysicianID smallint NOT NULL CONSTRAINT PK_Physicians PRIMARY KEY CLUSTERED, LastName varchar (25) NOT NULL, FirstName varchar (25) NOT NULL, CONSTRAINT PK_Physicians_Patients FOREIGN KEY (PhysicianID) REFERENCES Patients (PatientID) )

    • C. 

      CREATE TABLE Patients ( PatientID bigint NOT NULL CONSTRAINT PK_Patients PRIMARY KEY CLUSTERED, LastName varchar (25) NOT NULL, FirstName varchar (25) NOT NULL, ) GO CREATE TABLE Physicians ( PhysicianID int NOT NULL CONSTRAINT PK_Physician PRIMARY KEY CLUSTERED, LastName varchar (25) NOT NULL, FirstName varchar (25) NOT NULL, ) GO CREATE TABLE PatientPhysician ( PatientPhysicianID bigint NOT NULL CONSTRAINT PK_PatientsPhysicians PRIMARY KEY CLUSTERED, PhysicianID int NOT NULL, PatientID bigint NOT NULL, PrimaryPhysician bit NOT NULL, FOREIGN KEY (PhysicianID) REFERENCES Physicians (PhysicianID), FOREIGN KEY (PatientID) REFERENCES Patients (PatientID) )

    • D. 

      CREATE TABLE Patients ( PatientID int NOT NULL PRIMARY KEY, LastName varchar (25) NOT NULL, FirstName varchar (25) NOT NULL, ) GO CREATE TABLE Physicians ( PhysicianID int NOT NULL PRIMARY KEY, LastName varchar (25) NOT NULL, FirstName varchar (25) NOT NULL, ) GO CREATE TABLE PatientPhysician ( PhysicianID int NOT NULL REFERENCES Physicians (PhysicianID), PatientID int NOT NULL REFERENCES Patients (PatientID), PrimaryPhysician bit NOT NULL, CONSTRAINT PK_PatientsPhysicians PRIMARY KEY (PhysicianID, PatientID) )

  • 20. 
    You are the database developer for your company’s SQL Server 2000 database. This database contains a table named Invoices. You are a member of the db_owner role. Eric, a member of the HR database role, created the Trey_Research_UpdateInvoices trigger on the Invoices table. Eric is out of the office, and the trigger is no longer needed. You execute the following statement in the Sales database to drop the trigger: DROP TRIGGER Trey_Research_UpdateInvoices You receive the following error message: Cannot drop the trigger ‘Trey_Research_UpdateInvoices’, because it does not exist in the system catalog. What should you do before you can drop the trigger?
    • A. 

      Add your login name to the HR database role.

    • B. 

      Qualify the trigger name with the trigger owner in the DROP TRIGGER statement.

    • C. 

      Disable the trigger before executing the DROP TRIGGER statement.

    • D. 

      Define the trigger number in the DROP TRIGGER statement.

  • 21. 
    You have designed the database for a web site that is used to purchase concert tickets. During a ticket purchase, a buyer views a list of available tickets, decides whether to buy the tickets, and then attempts to purchase the tickets. This list of available tickets is retrieved in a cursor. For popular concerts, thousands of buyers might attempt to purchase tickets at the same time. Because of the potentially high number of buyers at any one time, you must allow the highest possible level of concurrent access to the data. How should you design the cursor?
    • A. 

      Create a cursor within an explicit transaction, and set the transaction isolation level to REPEATABLE READ.

    • B. 

      Create a cursor that uses optimistic concurrency and positioned updates. In the cursor, place the positioned UPDATE statements within an explicit transaction.

    • C. 

      Create a cursor that uses optimistic concurrency. In the cursor, use UPDATE statements that specify the key value of the row to be updated in the WHERE clause, and place the UPDATE statements within an implicit transaction.

    • D. 

      Create a cursor that uses positioned updates. Include the SCROLL_LOCKS argument in the cursor definition to enforce pessimistic concurrency. In the cursor, place the positioned UPDATE statements within an implicit transaction.

  • 22. 
    You are a database developer for a company that conducts telephone surveys of consumer music preferences. As the survey responses are received from the survey participants, they are inserted into a table named SurveyData. After all of the responses to a survey are received, summaries of the results are produced. You have been asked to create a summary by sampling every fifth row of responses for a survey. You need to produce the summary as quickly as possible. What should you do?
    • A. 

      Use a cursor to retrieve all of the data for the survey. Use FETCH RELATIVE 5 statement to select the summary data from the cursor.

    • B. 

      Use a SELECT INTO statement to retrieve the data for the survey into a temporary table. Use a SELECT TOP 1 statement to retrieve the first row from the temporary table.

    • C. 

      Set the query rowcount to five. Use a SELECT statement to retrieve and summarize the survey data.

    • D. 

      Use a SELECT TOP 5 statement to retrieve and summarize the survey data.

  • 23. 
    You are a database developer for a lumber company. You are performing a one-time migration from a flat-file database to SQL Server 2000. You export the flat-file database to a text file in comma-delimited format. The text file is shown in the Import file exhibit button. 1111, ‘*4 Interior’, 4, ‘Interior Lumber’, 1.12 1112, ‘2*4 Exterior’, 5, ‘Exterior Lumbar’, 1.87 2001, ‘16d galvanized’,2, ‘Bulk Nails’, 2.02 2221, ‘8d Finishing brads’,3, ‘Nails’, 0.01 You need to import this file into SQL Server tables named Product and Category. The product and category tables are shown in the product and Category Tables exhibit. You want to import the data using the least amount of administrative effort. What should you do?
    • A. 

      Use the bcp utility, and specify the –t option.

    • B. 

      Use the BULK INSERT statement, and specify the FIRE_TRIGGERS argument.

    • C. 

      Use the SQL-DMO BulkCopy2 object and set the TableLock property to TRUE.

    • D. 

      Use Data Transformation Services to create two Transform Data tasks.

  • 24. 
    You are a database developer for a database named Accounts at oodgrove Bank. A developer is creating a multi-tier application for the bank. Bank employees will use the application to manage customer accounts. The developer needs to retrieve customer names from the accounts database to populate a drop-down list box in the application. A user of the application will use the list box to locate a customer account. The database contains more than 50,000 customer accounts. Therefore, the developer wants to retrieve only 25 rows as the user scrolls through the list box. The most current list of customers must be available to the application at all times. You need to recommend a strategy for the developer to use when implementing the drop-down list box. What should you recommend?
    • A. 

      Create a stored procedure to retrieve all of the data that is loaded into the list box.

    • B. 

      Use an API server-side cursor to retrieve the data that is loaded into list box.

    • C. 

      Retrieve all of the data at once by using a SELECT statement, and then load the data into the list box.

    • D. 

      Use a Transact-SQL server-side cursor to retrieve the data that is loaded into the list box.

  • 25. 
    You are a database developer for Litware, Inc. You are restructuring the company’s sales database. The database contains customer information in a table named Customers. This table includes a haracter field named Country that contains the name of the country in which the customer is located. You have created a new table named Country. The scripts that were used to create the Customers and Country tables are shown in the exhibit. CREATE TABLE dbo.Country ( CountryID int IDENTITY(1,1) NOT NULL, CountryName char(20) NOT NULL, CONSTRAINT PK_Country PRIMARY KEY CLUSTERED (CountryID) ) CREATE TABLE dbo.Customers ( CustomerID int NOT NULL, CustomerName char(30) NOT NULL, Country char(20) NULL, CONSTRAINT PK_Customers PRIMARY KEY CLUSTERED (CustomerID) ) You must move the country information from the Customers table into the new Country tables as quickly as possible. Which script should you use?
    • A. 

      INSERT INTO Country (CountryName) SELECT DISTINCT Country FROM Customers

    • B. 

      SELECT (*) AS ColID, c1.Country INTO Country FROM (SELECT DISTINCT Country FROM Customers)AS c1, (SELECT DISTINCT Country FROM Customers) AS c2, WHERE c1.Country >=c2.Country GROUP BY c1.Country ORDER BY 1

    • C. 

      DECLARE @Country char (20) DECLARE cursor_country CURSOR FOR SELECT Country FROM Customers OPEN cursor_country FETCH NEXT FROM cursor_country INTO @Country WHILE (@@FETCH_STATUS -1) BEGIN If NOT EXISTS (SELECT CountryID FROM Country WHERE CountryName = @Country) INSERT INTO Country (CountryName) VALUES (@Country) FETCH NEXT FROM cursor_country INTO @Country END CLOSE cursor_country DEALLOCATE cursor_country

  • 26. 
    You are a database developer for Contoso, Ltd. The company has a database named HumanResources that contains information about all employees and office locations. The database also contains information about potential employees and office locations. The tables that ontain this information are shown in the exhibit. Current employees are assigned to a location, and current locations have one or more employees assigned to them. Potential employees are not assigned to a location, and potential office locations do not have any employees assigned to them. You need to create a report to display all current and potential employees and office locations. The report should list each current and potential location, followed by any employees who have been assigned to that location. Potential employees should be listed together. Which script should you use?
    • A. 

      SELECT l.LocationName, e.FirstName, e.LastName FROM Employee AS e LEFT OUTER JOIN Location AS 1 ON e.LocationID= l.LocationID ORDER BY l.LocationName, e.LastName, e.FirstName

    • B. 

      SELECT l.LocationName, e.FirstName, e.LastName FROM Location AS 1 LEFT OUTER JOIN EMPLOYEE AS 1 ON e.LocationID= l.LocationID ORDER BY l.LocationName, e.LastName, e.FirstName

    • C. 

      SELECT l.LocationName, e.FirstName, e.LastName FROM Employee AS e FULL OUTER JOIN Location AS 1 ON e.LocationID= l.LocationID ORDER BY l.LocationName, e.LastName, e.FirstName

    • D. 

      SELECT l.LocationName, e.FirstName, e.LastName FROM Employee AS e CROSS JOIN Location AS 1 ORDER BY l.LocationName, e.LastName, e.FirstName

  • 27. 
    You are designing a database for a web-based ticket reservation application. There might be 500 or more tickets available for any single event. Most users of the application will view fewer than 50 of the available tickets before purchasing tickets. However, it must be possible for a user to view the entire list of available tickets. As the user scrolls through the list, the list should be updated to reflect that tickets have been sold to other users. The user should be able to select tickets from the list and purchase the tickets. You need to design a way for the user to view and purchase available tickets. What should you do?
    • A. 

      Use a scrollable static cursor to retrieve the list of tickets. Use positioned updates within the cursor to make purchases.

    • B. 

      Use a scrollable dynamic cursor to retrieve the list of tickets. Use positioned updates within the cursor to make purchases

    • C. 

      Use a stored procedure to retrieve the list of tickets. Use a second stored procedure to make purchases.

    • D. 

      Use a user-defined function to retrieve the list of tickets. Use a second stored procedure to make purchases

  • 28. 
    You are a database consultant. You have been hired by a local dog breeder to develop a database. This database will be used to store information about the breeder’s dogs. You create a table named Dogs by using the following script: 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] GO ALTER TABLE [dbo].[Dogs] WITH NOCHECK ADD CONSTRAINT [PK_Dogs]PRIMARY KEY CLUSTERED ( [DogID] ) ON [PRIMARY] GO You must ensure that each dog has a valid value for the MotherID and FatherID columns. You want to enforce this rule while minimizing disk I/O. What should you do?
    • A. 

      Create an AFTER INSERT trigger on the Dogs table that rolls back the transaction of the MotherID or FatherID column is not valid.

    • B. 

      Create a table-level CHECK constraint on the MotherID and FatherID columns.

    • C. 

      Create two FOREIGN KEY constraints: one constraint on the MotherID column and one constraint on the FatherID column. Specify that each constraint reference the DogID column.

    • D. 

      Create a rule and bind it to the MotherID. Bind the same rule to the FatherID column.

  • 29. 
    You are the database developer for a company that provides consulting service. The company maintains data about its employees in a table named Employee. The script that was used to create the Employee table is shown in the exhibit. 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) ) The EmpType column in this table is used to identify employees as executive, administrative, or consultants. You need to ensure that the administrative employees can add, update, or delete data for non-executive employees only. What should you do?
    • A. 

      Create a view, and include the WITH ENCRYPTION clause.

    • B. 

      Create a view, and include the WITH CHECK OPTION clause.

    • C. 

      Create a view, and include the SCHEMABINDING clause.

    • D. 

      Create a view, and build a covering index on the view.

  • 30. 
    You are a database developer for an electric utility company. When customers fail to pay the balance on a billing statement before the statement due date, the balance of the billing statement needs to be increased by 1 percent each day until the balance is paid. The company needs to track the number of overdue billing statements. You create a stored procedure to update the balances and to report the number of billing statements that are overdue. The stored procedure is shown in the exhibit. Each time the stored procedure executes without error, it reports that zero billing statements are overdue. However, you observe that balances are being updated by the procedure. What should you do to correct the problem?
    • A. 

      Replace the lines 12-17 of the stored procedure with the following: Return @@ROWCOUNT

    • B. 

      Replace line 5 of the stored procedure with the following: DECLARE @Err int, @Count int Replace lines 12-17 with the following: SELECT @Err = @@ERROR, @Count = @@ROWCOUNT IF @Err = 0 Return @Count Else Return @Err

    • C. 

      Replace line 5-6 of the stored procedure with the following: DECLARE @count int Replace lines 12-17 with the following: SET @Count = @@ROWCOUNT If @@ERROR = 0 Return @Count Else Return –1

    • D. 

      Replace line 5 of the stored procedure with the following: Return @@Error

  • 31. 
    You are a database developer for an online electronics company. The company’s product catalog is contained in a table named Products. The Products table is frequently accessed during normal business hours. Modifications to the Products table are written to a table named PendingProductUpdate. These tables are shown in the exhibit. The PendingProductUpdate table will be used to update the Products table after business hours. The database server runs SQL Server 2000 and is set to 8.0 compatibility mode. You need to create a script that will be used to update the products table. Which script should you use?
    • A. 

      UPDATE Products SET p1.[Description] = p2.[Description], p1.UnitPrice = p2.UnitPrice FROM Products p1, PendingProductUpdate p2 WHERE p1.ProductID= p2.ProductID GO TRUNCATE TABLE PendingProductUpdate GO

    • B. 

      . UPDATE Products p1 SET [Description] = p2.[Description], UnitPrice = p2.UnitPrice FROM Products, PendingProductUpdate p2 WHERE p1.ProductID= p2.ProductID GO TRUNCATE TABLE PendingProductUpdate GO

    • C. 

      UPDATE Products p1 SET p1.[Description] = p2.[Description], p1.UnitPrice = p2.UnitPrice FROM (SELECT [Description], UnitPrice FROM PendingProductUpdate p2 WHERE p1.ProductID= p2.ProductID) GO TRUNCATE TABLE PendingProductUpdate GO

    • D. 

      UPDATE p1 SET p1.[Description] = p2.[Description], p1.UnitPrice = p2.UnitPrice FROM Products p1, PendingProductUpdate p2 WHERE p1.ProductID= p2.ProductID GO TRUNCATE TABLE PendingProductUpdate

  • 32. 
    You are the database developer for a sporting goods company that exports products to customers worldwide. The company stores its sales information in a database named Sales. Customer names are stored in a table named Customers in this database. The script that was used to create this table is shown in the exhibit. CREATE TABLE Customers ( CustomerID int NOT NULL, CustomerName varchar(30) NOT NULL, ContactName varchar(30) NULL, Phone varchar(20) NULL, Country varchar(30) NOT NULL, CONSTRAINT PK_Customers PRIMARY KEY (CustomerID) ) There are usually only one or two customers per country. However, some countries have as many as 20 customers. Your company’s marketing department wants to target its advertising to countries that have more than 10 customers. You need to create a list of these countries for the marketing department. Which script should you use?
    • A. 

      SELECT Country FROM Customers GROUP BY Country HAVING COUNT (Country)>10

    • B. 

      SELECT TOP 10 Country FROM Customers

    • C. 

      SELECT TOP 10 Country FROM Customers FROM (SELECT DISTINCT Country FROM Customers) AS X GROUP BY Country HAVING COUNT(*)> 10

    • D. 

      SET ROWCOUNT 10 SELECT Country, COUNT (*) as “NumCountries” FROM Customers GROUP BY Country ORDER BY NumCountries, Desc

  • 33. 
    You are a database developer for a sales organization. Your database has a table named Sales that contains summary information regarding the sales orders from salespeople. The sales manager asks you to create a report of the salespeople who had the 20 highest total sales.Which query should you use to accomplish this?
    • A. 

      SELECT TOP 20 PERCENT LastName, FirstName, SUM (OrderAmount) AS ytd FROM sales GROUP BY LastName, FirstName ORDER BY 3 DESC

    • B. 

      SELECT TOP 20 WITH TIES LastName, FirstName, SUM (OrderAmount) AS ytd FROM sales GROUP BY LastName, FirstName ORDER BY 3 DESC

    • C. 

      SELECT TOP 20 LastName, FirstName, SUM (OrderAmount) AS ytd FROM sales GROUP BY LastName, FirstName ORDER BY 3 DESC

    • D. 

      SELECT TOP 20 LastName, FirstName, MAX(OrderAmount) AS ytd FROM sales GROUP BY LastName, FirstName ORDER BY 3 DESC

  • 34. 
    You are a database developer for a travel agency. A table named FlightTimes in the Airlines database contains flight information for all airlines. The travel agency uses an intranet-based application to manage travel reservations. This application retrieves flight information for each airline from the FlightTimes table. Your company primarily works with one particular airline. In the Airlines database,the unique identifier for this airline is 101. The application must be able to request flight times without having to specify a value for the airline. The application should be required to specify a value for the airline only if a different airline’s flight times are needed. What should you do?
    • A. 

      Create a stored procedure that accepts a parameter with a default value of 101.

    • B. 

      Create two stored procedures, and specify that one of the stored procedures should accept a parameter and that the other should not.

    • C. 

      Create a user-defined function that accepts a parameter with a default value of 101.

    • D. 

      Create a default of 101 on the FlightTimes table.

  • 35. 
    You are a database developer for Wingtip Toys. You have created an order entry database that includes two tables, as shown in the exhibit. Users enter orders into an entry application. When a new order is entered, the data is saved to the Order and LineItem tables in the order entry database. You must ensure that the entire order is saved successfully. Which script should you use?
    • A. 

      BEGIN TRANSACTION Order INSERT INTO Order VALUES (@ID, @CustomerID, @OrderDate) INSERT INTO LineItem VALUES (@ItemID, @ID, @ProductID, @Price) SAVE TRANSACTION Order

    • B. 

      INSERT INTO Order VALUES (@ID, @CustomerID, @OrderDate) INSERT INTO LineItem VALUES (@ItemID, @ID, @ProductID, @Price) IF (@@Error = 0) COMMIT TRANSACTION ELSE ROLLBACK TRANSACTION

    • C. 

      BEGIN TRANSACTION INSERT INTO Order VALUES (@ID, @CustomerID, @OrderDate) IF (@@Error = 0) BEGIN INSERT INTO LineItem VALUES (@ItemID, @ID, @ProductID, @Price) IF (@@Error = 0) COMMIT TRANSACTION ELSE ROLLBACK TRANSACTION END ELSE ROLLBACK TRANSACTION END

    • D. 

      BEGIN TRANSACTION INSERT INTO Order VALUES (@ID, @CustomerID, @OrderDate) IF (@@Error = 0) COMMIT TRANSACTION ELSE ROLLBACK TRANSACTION BEGIN TRANSACTION INSERT INTO LineItem VALUES (@ItemID, @ID, @ProductID, @Price) IF (@@Error = 0) COMMIT TRANSACTION ELSE ROLLBACK TRANSACTION

  • 36. 
    You are a database developer for an online brokerage firm. The prices of the stocks owned by customers are maintained in a SQL Server 2000 database. To allow tracking of the stock price history, all updates of stock prices must be logged. To help correct problems regarding price updates, any errors that occur during an update must also be logged. When errors are logged, a message that identifies the stock producing the error must be returned to the client application. You must ensure that the appropriate conditions are logged and that the appropriate messages are generated. Which procedure should you use?
    • A. 

      CREATE PROCEDURE UpdateStockPrice @StockID int, @Price decimal AS BEGIN DECLARE @Msg varchar(50) UPDATE Stocks SET CurrentPrice = @Price WHERE StockID = @ StockID AND CurrentPrice @ Price IF @@ERROR 0 RAISERROR (‘Error %d occurred updating Stock %d.’, 10, 1, @@ERROR, @StockID) WITH LOG IF @@ROWCOUNT > 0 BEGIN SELECT @Msg = ‘Stock’ + STR (@StockID) + ‘updated to’ + STR (@Price) + ‘.’ EXEC master. . xp_LOGEVENT 50001, @Msg END END

    • B. 

      CREATE PROCEDURE UpdateStockPrice @StockID int, @Price decimal AS BEGIN UPDATE Stocks SET CurrentPrice = @Price WHERE StockID = @ StockID AND CurrentPrice @ Price IF @@ERROR 0 PRINT ‘ERROR’ + STR(@@ERROR) + ‘occurred updating Stock’ +STR (@StockID)+ ‘.’ IF @@ROWCOUNT > 0 PRINT ‘Stock’ + STR (@StockID) + ‘updated to’ + STR (@Price) + ‘.’ END

    • C. 

      CREATE PROCEDURE UpdateStockPrice @StockID int, @Price decimal AS BEGIN DECLARE @Err int, @RCount int, @Msg varchar(50) UPDATE Stocks SET CurrentPrice = @Price WHERE StockID = @ StockID AND CurrentPrice @ Price SELECT @Err = @@ERROR, @RCount = @@ROWCOUNT IF @Err 0 BEGIN SELECT @Msg = ‘Error’ + STR(@Err) + ‘occurred updating Stock’ + STR (@StockID) + ‘.’ EXEC master..xp_logevent 50001, @Msg END IF @RCOUNT > 0 BEGIN SELECT @Msg = ‘Stock’ + STR (@StockID) + ‘updated to’ + STR (@Price) + ‘.’ EXEC master. . xp_LOGEVENT 50001, @Msg END END

    • D. 

      CREATE PROCEDURE UpdateStockPrice @StockID int, @Price decimal AS BEGIN DECLARE @Err int, @RCount int, @Msg varchar (50) UPDATE Stocks SET CurrentPrice = @Price WHERE StockID = @StockID AND CurrentPrice @Price SELECT @Err = @@ERROR, @RCount = @@ROWCOUNT If @Err 0 RAISEERROR (‘Error %d occurred updating Stock %d.’, 10, 1, @Err, @StockID) WITH LOG If @RCount > 0 BEGIN SELECT @Msg = ‘Stock’ + STR (@StockID) + ‘update to’ + STR (@Price) + ‘.’ EXEC master. . xp_logevent 50001, @Msg END END

  • 37. 
    You are a database developer for a company that leases trucks. The company has created a web site that customer can use to reserve trucks. You are designing the SQL server 2000 database to support the web site. New truck reservations are inserted into a table named Reservations. Customers who have reserved a truck can return to the web site and update their reservation. When a reservation is updated, the entire existing reservation must be copied to a table named History. Occasionally, customers will save an existing reservation without actually changing any of the information about the reservation. In this case, the existing reservation should not be copied to the History table. You need to develop a way to create the appropriate entries in the History table. What should you do?
    • A. 

      Create a trigger on the Reservations table to create the History table entries.

    • B. 

      Create a cascading referential integrity constraint on the Reservations table to create the History table entries.

    • C. 

      Create a view on the Reservations table. Include the WITH SCHEMABINDING option in the view definition.

    • D. 

      Create a view on the Reservations table. Include the WITH CHECK OPTION clause in the view definition.

  • 38. 
    You are a database developer for Proseware, Inc. The company has a database that contains information about companies located within specific postal codes. This information is contained in the company table within this database. Currently, the database contains company data for five different postal codes. The number of companies in a specific postal code currently ranges from 10 to 5,000. More companies and postal codes will be added to the database over time. You are creating a query to retrieve information from the database. You need to accommodate new data by making only minimal changes to the database. The performance of your query must not be affected by the number of companies returned. You want to create a query that performs consistently and minimizes future maintenance. What should you do?
    • A. 

      Create a stored procedure that requires a postal code as a parameter. Include the WITH RECOMPILE option when the procedure is created.

    • B. 

      Create one stored procedure for each postal code

    • C. 

      Create one view for each postal code.

    • D. 

      Split the Company table into multiple tables so that each table contains one postal code. Build a partitioned view on the tables so that the data can still be viewed as a single table.

  • 39. 
    You are a database developer for Woodgrove Bank. You are implementing a process that loads data into a SQL Server 2000 database. As a part of this process, data is temporarily loaded into a table named Staging. When the data load process is complete, the data is deleted from this table. You will never need to recover this deleted data. You need to ensure that the data from the Staging table is deleted as quickly as possible. What should you do?
    • A. 

      Use a DELETE statement to remove the data from the table.

    • B. 

      Use a TRUNCATE TABLE statement to remove the data from the table.

    • C. 

      Use a DROP TABLE statement to remove the data from the table.

    • D. 

      Use an updateable cursor to access and remove each row of data from the table.

  • 40. 
    You are a database developer for an automobile dealership. You are designing a database to support a web site that will be used for purchasing automobiles. A person purchasing an automobile from the web site will be able to customize his or her order by selecting the model and color. The manufacturer makes four different models of automobiles. The models can be ordered in any one of five colors. A default color is assigned to each model. The models are stored in a table named Models, and the colors are stored in a table named Colors. These tables are shown in the exhibit. You need to create a list of all possible model and color combinations. Which script should you use?
    • A. 

      SELECT m.ModelName, c.ColorName FROM Colors AS c FULL OUTER JOIN Models AS m ON c.ColorID = m.ColorID ORDER BY m.ModelName, c.ColorName

    • B. 

      SELECT m.ModelName, c.ColorName FROM Colors AS c CROSS JOIN Models AS m ORDER BY m.ModelName, c.ColorName

    • C. 

      . SELECT m.ModelName, c.ColorName FROM Colors AS m INNER JOIN Colors AS c ON m.ColorID = c.ColorID ORDER BY m.ModelName, c.ColorName

    • D. 

      SELECT m.ModelName, c.ColorName FROM Colors AS c LEFT OUTER JOIN Models AS m ON c.ColorID = m.ColorID UNION SELECT m.ModelName, c.ColorName FROM Colors AS c RIGHT OUTER JOIN Models AS m ON c.ColorID = m.ColorID ORDER BY m.ModelName, c.ColorName