You are the database administrator for a retail company. The company owns 270 stores. Every month, each store submits approximat

admin2009-05-19  18

问题 You are the database administrator for a retail company. The company owns 270 stores. Every month, each store submits approximately 2,000 sales records, which are loaded into a SQL Server 2000 database at the corporate headquarters.

A Data Transformation Services (DTS) package transforms the sales records, as they are loaded. The package writes the transformed sales records to the Sales table, which has a column for integer primary key values. The IDENTITY property automatically assigns a key value to each transformed sales record.

After loading this month’s sales data, you discover that a portion of the data contains errors. You stop loading data, identify the problem records, and delete those records from the database.

You want to reuse the key values that were assigned to the records that you deleted. You want to assign the deleted key values to the next sales records you load. You also want to disrupt users’ work as little as possible.
What should you do?

选项 A、Export all records from the Sales table to a temporary table. Truncate the Sales table, and then reload the records from the temporary table.
B、Export all records from the Sales table to a text file. Drop the Sales table, and then reload the records from the text file.
C、Use the DBCC CHECKIDENT statement to reseed the Sales table’s IDENTITY property.
D、Set the Sales table’s IDENTITY_INSERT property to ON. Add new sales records that have the desired key values.

答案C

解析 Explanation: DBCC CHECKIDENT is used to check the current identity value for the specified table. It can be set to correct the identity value by specifying the RESEED option with DBCC CHECKIDENT.

Note: Example:
Assume that we have a table called test with an identity column with seed (1,1) and 1000 rows and that we delete row 901 to 950. We could then issue the command
DBCC CHECKIDENT (test, reseed, 900)

And load the 50 missing rows. These rows would get the values 901, 902, …,950 in the identity column.
We should then set the identity value to 1000 again:
DBCC CHECKIDENT (test, reseed, 1000)

So that the next new row will have identity 1001.

Incorrect Answers:
A: Exporting the data from the Sales table and then reloading the data will not correct errors contained in the table as these errors will also be exported as they are part of the data already in the table.
B: Exporting the data from the Sales table and then reloading the data will not correct errors contained in the table as these errors will also be exported as they are part of the data already in the table.

D: The SET IDENTITY_INSERT command allows explicit values to be inserted into the identity column of a table. To reuse the old key values from the rows that was deleted would require manual commands and would be awkward. This is not the best solution.
转载请注明原文地址:https://jikaoti.com/ti/9wO7FFFM
0

最新回复(0)