Bing Yee程序人生

关注互联网产品技术学习,应用开发~

DBCC CHECKIDENT

2013-10-31 10:11:18 类别:数据库
摘要:由于误入数据而删除导致标识(自动编号)不连续 查找资料找到了 BCC CHECKIDENT 可以解决

本文均为转载(学习为主)

检查指定表的当前标识值,如有必要,还对标识值进行更正。

语法

DBCC CHECKIDENT
    ( 'table_name'
        [ , { NORESEED
                | { RESEED [ , new_reseed_value ] }
            }
        ]
    )

如果标识列上有主键或唯一键约束,
使用DBCC CHECKIDENT ('table_name', RESEED, new_reseed_value) 当前值设置为new_reseed_value,这个时候需要注意:new_reseed_value 的值应该取当前标识列中的最大值,避免插入错误。

示例
A. 如有必要,重置当前标识值
下例在必要的情况下重置 table_name 表的当前标识值。

USE pubs
GO
DBCC CHECKIDENT (table_name)
GO



B. 报告当前标识值
下例报告 table_name 表中的当前标识值;如果该标识值不正确,并不对其进行更正。

USE pubs
GO
DBCC CHECKIDENT (table_name, NORESEED)
GO



C. 强制当前标识值为 30
下例强制 table_name 表中的当前标识值为 30。

USE pubs
GO
DBCC CHECKIDENT (table_name, RESEED, 30)
GO


Ps:
本地实验C例子,当前标识ID最大值=14,修改后,插入合法数据,新增job_ID=31;

如果这个时候,再执行DBCC CHECKIDENT (table_name, RESEED, 30),再插入数据,会出现错误:
主键约束失败错误。无效标识信息可能会导致错误信息 2627。

9194次阅读  标签:CHECKIDENT,DBCC,RESEED
下一篇:301跳转代码包含(IIS|ASP|PHP|JSP|.NET|APACHE)
上一篇:MSSQL unique 索引和约束详解

共81条评论

johnan(1楼)-2020-8-26 19:34:28
审核中

Pydrase(2楼)-2021-6-9 21:34:26
审核中

Pydrase(3楼)-2021-6-24 1:16:50
审核中

Pydrase(4楼)-2021-7-11 5:16:41
审核中

Pydrase(5楼)-2021-7-28 1:21:15
审核中

Pydrase(6楼)-2021-8-21 23:06:16
审核中

发表评论

文章分类


友情链接