加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

重置SQLServer的IdentityID

发布时间:2020-12-12 15:14:04 所属栏目:MsSql教程 来源:网络整理
导读:? DBCC CHECKIDENT ('cs_Threads') ? 上述语句的意思:如果表'cs_Threads'的当前标识值小于列中存储的最大标识值,则使用标识列中的最大值对其进行重置。 ? ? ? CHECKIDENT 命令可以有以下几种写法: ? 1、DBCC CHECKIDENT ('table_name',NORESEED) ? ?? ? ?

?

DBCC CHECKIDENT ('cs_Threads')

?

上述语句的意思:如果表'cs_Threads'的当前标识值小于列中存储的最大标识值,则使用标识列中的最大值对其进行重置。

?

?

?

CHECKIDENT 命令可以有以下几种写法:

?

1、DBCC CHECKIDENT ('table_name',NORESEED)

?

?? ? ?不重置当前标识值。DBCC CHECKIDENT 返回一个报表,它指明当前标识值和应有的标识值。

?

?? ? 类似如下的报表:

?

?? ? ?Checking identity information: current identity value '6109',current column value '6144'.

?

2、DBCC CHECKIDENT ('table_name') 或DBCC CHECKIDENT ('table_name',RESEED)

?

?? ? 如果表的当前标识值小于列中存储的最大标识值,则使用标识列中的最大值对其进行重置。

?

?? ? 上述命令执行的时候,也会报类似上面的报表。

?

3、DBCC CHECKIDENT ('table_name',RESEED,new_reseed_value)

?

?? ? 当前值设置为 new_reseed_value。

?

?? ? ?如果自创建表后没有将行插入该表,则在执行 DBCC CHECKIDENT 后插入的第一行将使用 new_reseed_value 作为标识。

?? ? ?否则,下一个插入的行将使用 new_reseed_value + 1。

?

?? ?如果 new_reseed_value 的值小于标识列中的最大值,以后引用该表时将产生 2627 号错误信息。DBCC CHECKIDENT ('cs_Threads')

上述语句的意思:如果表'cs_Threads'的当前标识值小于列中存储的最大标识值,则使用标识列中的最大值对其进行重置。

?

?

导入数据时,需关闭Identity:

Set identity_insert ?[tablename] OFF

?

Set identity_insert ?[tablename] ON

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读