在SQLServer输入数据时,碰到有主键ID需要维护时,可使用IDENT_CURRENT和CHECKIDENT命令来维护。
 
一般我们的用法如下:
1) 查看且如有必要更正当前标识值:
     DBCC CHECKIDENT('table_name')
 
2) 查看当前标识值,即使有错也不视图更正:
     DBCC CHECKIDENT('table_name', NORESEED)
 
3) 指定新的标识值:
     DBCC CHECKIDENT('table_name', RESEED, new_reseed_value)
 
WITH NO_INFOSGS是关闭消息提示。
---------------------------------------------------------------------------------------------------------------------------------------------------------
需要注意的问题:
当设置的new_reseed_value小于表中主键ID的值时,后续再插入过程中会出现以下错误:
 a) 当主键或唯一约束存在时,会报2627错误,因为当前的主键值已在数据表中,产生冲突;
 b) 当主键或唯一约束不存在时,会报重复主键错误。
 
解决方法:
 先使用select max(id) from table_name, 查询出表中最大的ID,然后重新设置一个比其打的new_reseed_value;
 如果表中数据已经删除,可以使用DBCC CHECKIDENT('table_name', NORESEED, 1)置为1,然后用DBCC CHECKIDEN('table_name')来修正。
 
另外,在SQL中,如果要插入ID,一般我们可以用select IDENT_CURRENT('table_name')+1 来插入比当前序列值多1的值。
 
 
IDENT_CURRENT命令返回指定表或视图生成的最后一个标识值。用法如下:
 
     IDENT_CURRENT('table_name')
返回类型numeric(38,0).
 
DBCC  CHECKIDENT命令用于检查或指定当前表/视图的标识值。用法如下:
 
DBCC CHECKIDENT
(
     table_name
          [, {NORESEED | {RESEED [, new_reseed_value] } } ]
)
[WITH NO_INFOSGS]

关于SQLServer数据库DBCC CHECKIDENT命令的更多相关文章

  1. 第三章——使用系统函数、存储过程和DBCC SQLPERF命令来监控SQLServer(3)

    原文:第三章--使用系统函数.存储过程和DBCC SQLPERF命令来监控SQLServer(3) 本文为这个系列最后一篇.将是如何使用DBCC命令来监控SQLServer日志空间的使用情况. 前言: ...

  2. 命令行下从bak文件恢复sqlserver数据库方法

    命令行下从bak文件恢复sqlserver数据库方法 注:本文所示访问从SqlServer 2000 - 2014版都是通用的 参考:http://blog.sina.com.cn/s/blog_5c ...

  3. DBCC常用命令小汇

    DBCC是SQL Server提供的一组控制台命令,功能很强大,掌握一些必要的语句,对操作数据库有不少帮助,所以决定整理一下,发现已有不少类似的整理,减少了不少工作,归类如下: 一.DBCC 帮助类命 ...

  4. (转)对SQLSERVER数据库事务日志的疑问

    本文转载自桦仔的博客http://www.cnblogs.com/lyhabc/archive/2013/06/10/3130856.html 对SQLSERVER数据库事务日志的疑问 摸不透SQLS ...

  5. SQLSERVER数据库死锁与优化杂谈

    死锁杂谈 当数据库死锁时,SqlServer会释放一个优先级较低的锁,让另一个事务运行:所以,即时去捕捉数据库死锁,是挺不容易的. 如果,数据库死锁比较长时间,那么死锁是可以被捕捉的. 可以用SqlS ...

  6. sqlserver数据库出现可疑错误修复方法

    一.主数据库出现可疑修复方法: 第一种方法: 当数据库发生这种操作故障时,可以按如下操作步骤可处理此要领,打开数据库里的Sql查询编辑器窗口,运行以下的命令: ?修改数据库为紧急模式 ALTER DA ...

  7. SQLServer数据库自增长标识列的更新修改操作

    SQLServer数据库自增长标识列的更新修改操作方法在日常的sql server开发中,经常会用到Identity类型的标识列作为一个表结构的自增长编号.比如文章编号.记录序号等等.自增长的标识列的 ...

  8. DBCC CHECKIDENT 和SET IDENTITY_INSERT table OFF

    TRUNCATE TABLE [DBO].TRACKING_CODE_BASE_Jasmine DELETE FROM TRACKING_CODE_BASE_Jasmine 有同一张表,一次用trun ...

  9. SqlServer数据库(可疑)解决办法4种

     亲自试过,可行!!!!! SqlServer数据库(可疑)解决办法4种   重启服务--------------------------------------------------日志文件丢了, ...

  10. checkpoint(sqlserver数据库检查点)

    关于检查点的解释:   出于性能方面的考虑,数据库引擎对内存(缓冲区缓存)中的数据库页进行修改,但在每次更改后不将这些页写入磁盘.相反,数据库引擎定期发出对每个数据库的检查点命令.“检查点”将当前内存 ...

随机推荐

  1. pycharm中运行shell脚本

    为了跑一份深度学习工程文件,这份文件夹有好几份子文件夹,子文件夹里有.sh脚本.我以前跟盛哥来跑强化学习的代码时,盛哥教我装了git,所以用git是可以来跑脚本的.费力搞了半天装cygwin来跑,实际 ...

  2. AngularJS UI

    1, angular ui 自定义弹框 <script type="text/ng-template" id="stackedModal.html"> ...

  3. Java设计模式之策略模式(13)

    策略模式定义了一系列算法,每个算法封装起来,他们可以相互替换,且算法的变化不会影响到使用算法的客户.可以设计一个抽象类提供辅助. package WHP; public interface ICalc ...

  4. 使用CMD创建任意文件

    C:\>fsutil file createnew 用法 : fsutil file createnew <文件名> <长度> 范例:fsutil file create ...

  5. 3d-force-graph使用及相关设置

    首先安装3d-force-graph模块到项目依赖: npm install 3d-force-graph 在需要使用的vue页面中导入 import ForceGraph3D from '3d-fo ...

  6. VAE变分自编码器公式推导

    VAE变分推导依赖数学公式 (1)贝叶斯公式:\(p(z|x) = \frac{p(x|z)p(z)}{p(x)}\) (2)边缘概率公式:\(p(x) =\int{p(x,z)}dz\) (3)KL ...

  7. Windows 操作

    一.基础命令 1. 盘符切换:D:: 2. 查看当前目录文件:dir: 3. 当前盘符内目录切换:cd path: 二.其他命令 1. netstat:查看网络端口状态 A. 查看某一端口信息:net ...

  8. Git配置新学

    Git中的AutoCRLF与SafeCRLF换行符问题 https://zhuanlan.zhihu.com/p/380574688 https://xiaozhuanlan.com/topic/40 ...

  9. win10版本eclipse安装教程——

    第一步:下载jdk,配置环境 见我第二篇博客有说明:点击即可进入 第二步:下载eclipse 点击即可进入官网下载 点击 Download Packages,进入eclipse下载页面.从 Eclip ...

  10. PHP、Navicat安装

    一.PHPStudy小皮面板:https://public.xp.cn/upgrades/phpStudy_64.zip 下载完成后解压后双击 点击立即安装 安装完成 启动MySQL,Nginx(my ...