A-A+
重设标识列(identity)种子
2004-11-03 11:8 AM
假设你依赖于 identity 列,该列有一个指定的种子和步进值,那么偶尔你会需要重设 identity 值。这种情况经常会发生,因为你会从表中删除很多行数据,而且并不想种子值反映出几百万条的测试记录,而是从1(或者10、100等任何一个数字)开始。但是在测试之后如何重设种子值呢?
解决方法是以 CHECKIDENT 关键字运行 DBCC,指定适当的参数。如何,如果你在测试过程中创建了非常多的数据记录,通过了回归测试,删除了所有的记录,并想把种子重设为1,那么你只要简单地发出类似如下原命令即可:
USE MyDatabase
GO
DBCC CHECKIDENT (MyTable, RESEED, 1)
GO
这几行 SQL 代码将把指定表的种子值强制重设为1。然而,你可能不想将种子重设为1,在这种情况下,你可以用你想用的种子值替代第三个参数。
有时候你可能想知道当前的种子,而不是想重设种子。在这种情况下,使用如下的 SQL:
USE MyDataBase
GO
DBCC CHECKIDENT (MyTable, NORESEED)
GO
总而言之,你可以将任意表的种子值重设为你想要的任何值——除了正在使用的值。你可以随时测试数据库然后删除所有的测试记录并将种子值重设为你需要的值。
本文作者:Arthur Fuller 开发数据库应用程序已经有20余年的经验。他经常使用 Access ADP、Microsoft SQL Server 2000、MySQL 和 .NET。