Sql server 在数据库上为标识列重新设定种子

Sql server 在数据库上为标识列重新设定种子,sql-server,sql-server-2008,identity-column,Sql Server,Sql Server 2008,Identity Column,我能用这个吗 DBCC CHECKIDENT(<table_name>, RESEED, value) DBCC CHECKIDENT(,重新设定种子,值) 命令将标识列的当前值重置为SQL Server 2008中的原始值 如果是,这是正确的操作方法而没有任何缺点吗? 如果没有,是否有其他方法 我是否可以使用DBCC CHECKIDENT命令将标识列的当前值重置为SQL Server 2008中的原始值 对 如果是,这是正确的操作方法而没有任何缺点吗 这是一种记录在案的方法 可

我能用这个吗

DBCC CHECKIDENT(<table_name>, RESEED, value)
DBCC CHECKIDENT(,重新设定种子,值)
命令将标识列的当前值重置为SQL Server 2008中的原始值

如果是,这是正确的操作方法而没有任何缺点吗? 如果没有,是否有其他方法

我是否可以使用DBCC CHECKIDENT命令将标识列的当前值重置为SQL Server 2008中的原始值

如果是,这是正确的操作方法而没有任何缺点吗

这是一种记录在案的方法

可能的缺点:最终可能会得到重复的
IDENTITY
值-SQL Server无法保证它不会返回尚未使用的值

例如,如果您的
标识
当前为100,并且您将其重置为1,则很可能迟早会产生一个已在使用的值

SQL Server中实现的
标识
不检查现有值或任何内容,它只生成序列号。这取决于您-尤其是如果您在该
标识上重新设置了
种子,以确保值不重复。

可以忽略该值。 所以如果你使用

DBCC CHECKIDENT (<table_name>, RESEED);
DBCC CHECKIDENT(,重新设定);
SQL Server根据已使用的数字将ident值设置为正确的下一个数字。
这是我所知道的重新设定标识值种子的唯一方法。

当且仅当feild是主键并且引用任何其他表中的任何外键时,它有一个很大的缺点。重新设定种子有助于获取字段上有索引的事务表中的记录。

实际上这里有三个问题。我相信你能看到他们。。。如果您需要进一步的解释,请询问:将您的身份设置为从2000开始:
DBCC CHECKIDENT(,RESEED,2000)
答案没有意义。