关于SQLServer数据库DBCC CHECKIDENT命令
2024-09-04 13:32:19
在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]
最新文章
- tomcat项目的部署
- LintCode 463 Sort Integer
- linux下编译qt5.6.0静态库——configure配置
- 重温WCF之消息拦截与篡改(八)
- HBase性能调优
- Xunit
- little's law(律特法则)
- XCL-Charts图表库中柱形图的同源风格切换介绍
- ClickHouse 快速入门
- 前端笔记之移动端&;响应式(上)媒体查询&;Bootstrap&;动画库&;zepto&;velocity
- 1970年// iPhone “变砖”后可继续正常使用的解决方案
- eMMC基础技术11:flash memory
- 26.python常用端口号
- SAP月结操作讲解
- Blob下载文件 &; 模拟滚动条实现
- hdu2041
- 性能测试指标的理解--cpu和load
- bzoj 1731: [Usaco2005 dec]Layout 排队布局 ——差分约束
- Android studio 导入工程 出现错误
- Delphi控件开发浅入深出(三)
热门文章
- map转listmap
- response status is 500 https://localhost:7129/swagger/v1/swagger.json
- python批量更改文件名并移动到新的文件夹
- SQLSERVER 根据一个库的视图在另一个库中生成一张表
- Excel——解除工作表保护
- C++实现有序表--顺序表的合并操作代码
- vue dialog弹窗
- opencv对图片画框写文字
- 实验:STM32F103烧写支持Arduino
- kvm介绍(1)