Sql Server数据库自增长字段标识列的插入或更新修改操作办法
来源:互联网 发布:excel图表数据区域 编辑:程序博客网 时间:2024/05/17 04:08
写在前面的话:在日常的Sql server开发中,经常会用到Identity类型的标识列作为一个表结构的自增长编号。比如文章编号、记录编号等等。自增长的标识很大程度上方便了数据库程序的开发,但有时候这个固执的字段类型也会带来一些麻烦。
1、修改标识列的字段值
有时为了实现某些功能,需要修改类型为identity自增长类型的字段的值,但由于标识列的类型所限,这种操作默认是不允许的。比如目前数据库有5条正常添加的数据,此时删除2条,那么如果再添加数据时,自增长的标识列会自动赋值为6,可这时如果想在插入数据时赋值给3呢,默认是不允许的。如果你特别想改变这个值,完全由自己来控制该标识字段值的插入,方法还是有的。
set INENTITY_INSERT [tableName] [on/off]
使用上述语句,可以方便的控制某个表的某个自增长列标识是否自动增长,也就是说是否允许你在inset一条记录时手动指定列标识字段的值,如果指定为on,则可以在insert时指定标识列字段的值,该值不自动增长赋值。当然使用完毕,还需要用这个语句将开关关闭到原始状态off,否则下次insert数据时该字段还是不会自动增长赋值的。
set IDENTITY_INSERT [tableName] on
insert into tableName
set IDENTITY_INSERT [tableName] off
2、重置标识列字段值
当数据记录被删除一部分后,后面再添加的新数据记录,标识列数值会有很大的空闲间隔,看起来很不爽。即使你删除表中所有数据,identity标识列还是会无休止的自动增长下去,而不是重头开始增长,通过下面的语句可以重置自增长字段的种子值:
dbcc CHECKIDENT(table, [reset|noreset], 200)
上述语句将把指定的种子值强制重设为200。然而,如果你不想将种子重设为200,你可以通过修改第三个参数来改变。如果你想知道当前种子的值,而不想重设种子,那么可以中noreset,这样就不需要设置第三个参数了。
dbcc CHECKIDENT(table, NORESET)
- Sql Server数据库自增长字段标识列的插入或更新修改操作办法
- SQL Server数据库自增长字段标识列的更新(update)修改终极操作方法
- SQLServer数据库自增长标识列的更新修改操作
- SQLServer数据库自增长标识列的更新修改操作
- SQL Server数据库自增长标识列的更新修改操作方法
- SQL Server数据库自增长标识列的更新修改操作方法
- SQL Server数据库自增长标识列的更新修改操作方法
- SQL Server数据库自增长标识列的更新修改操作方法
- SQL Server数据库自增长标识列的更新修改操作方法
- SQL 关于主键和自增长标识列的修改
- SQL Server数据库自增长标识列的更…
- sql server ,mysql ,oracle 自增长字段设置以及自增长属性的修改验证
- 如何获取SQL Sever中自增长列的下一行标识值?(获取刚插入的标识值)
- SQL Server修改标识列方法 如自增列的批量化修改
- SQL Server 标识列的修改
- SQL Server自增长列插入指定值教程
- 使用sql语句创建修改SQL Server标识列(即自动增长列)
- 使用sql语句创建修改SQL Server标识列(即自动增长列)
- ecshop开发环境搭建
- MVC个人理解
- 获取系统日期
- [51NOD] 1004 n^n的末位数字 [数学]
- 简单理解时间复杂度怎么计算?
- Sql Server数据库自增长字段标识列的插入或更新修改操作办法
- mysql主从复制中出现的error和解救办法
- JS学习中 计算器 简单应用
- android 五种布局
- 自我认知---我是一个假的程序员?
- Xcode奇淫巧技(四)——代码块Code Snippets
- java的“初始化块”和“static初始化块”
- npm 安装参数中的 --save-dev和--save
- 关于redis传值的问题