Sql Server数据库自增长字段标识列的插入或更新修改操作办法
写在前面的话:在日常的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数据库自增字段正确的插入值的描述
我们今天主要向大家讲述的是SQL Server数据库之向SQL Server自增字段正确的插入值的实际操作步骤,在一般的情况下,我们不能向 SQL Server 数据库自增字段中插入值,如果非要这么干 ...
- 找到SQL Server数据库历史增长信息
很多时候,在我们规划SQL Server数据库的空间,或向存储方面要空间时,都需要估算所需申请数据库空间的大小,估计未来最简单的办法就是看过去的趋势,这通常也是最合理的方式. 通常来讲 ...
- SQL Server索引进阶:第十三级,插入,更新,删除
在第十级到十二级中,我们看了索引的内部结构,以及改变结构造成的影响.在本文中,继续查看Insert,update,delete和merge造成的影响.首先,我们单独看一下这四个命令. 插入INSERT ...
- Sql Server数据库使用触发器和sqlbulkcopy大批量数据插入更新
需要了解的知识 1.触发器 2.sqlbulkcopy 我的用途 开发数据库同步的工具,需要大批量数据插入和数据更新. 方式 使用SqlBulkCopy类对数据进行数据批量复制,将需要同步数据的表新建 ...
- SQL SERVER 数据库查询表和字段信息语句
--数据库中所有表的信息(很强悍的) SELECT 表名 = CASE WHEN A.COLORDER=1 THEN D.NAME EL ...
- SQL Server 数据库所有表增加同一列
SET @COLUMN_NAME = 'ColumnNameYouWantToAdd'; SET @COLUMN_DATATYPE = 'DataTypeOfColumn'; ------------ ...
- SQL server 数据库 ——聚合函数(一列 多行,值类型)
聚合函数 5种函数: 1.max最大值 select max(price) from car where code='c024' 2.min最小值 select * from car wher ...
- SQLServer数据库自增长标识列的更新修改操作
SQLServer数据库自增长标识列的更新修改操作方法在日常的sql server开发中,经常会用到Identity类型的标识列作为一个表结构的自增长编号.比如文章编号.记录序号等等.自增长的标识列的 ...
- 将文件导入到SQL server数据库表中的字段中
一.在要执行的sql server数据库a中执行如下脚本,创建存储过程sp_textcopy /* 将二进制文件导入.导出到数据库相应字段列中 */ CREATE PROCEDURE sp_textc ...
随机推荐
- 【CMS】安装CMS
Apache和MySQL准备好后开始安装CMS 在浏览器输入:http://localhost/install/index.php即可开始安装.
- sass / scss
Sass 有两种语法规则(syntaxes),目前新的语法规则(从 Sass 3开始)被称为 “SCSS”( 时髦的css(Sassy CSS)),它是css3语法的的拓展级,就是说每一个语法正确的C ...
- HDU 5402 Travelling Salesman Problem(棋盘染色 构造 多校啊)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5402 Problem Description Teacher Mai is in a maze wit ...
- ORA-27090 故障一例
近期的alert日志中碰到了ORA-27090的错误信息.其错误提示为Unable to reserve kernel resources for asynchronous disk I/O.依据这个 ...
- win10下Visual Studio 2015,C++ x64编译zlib
前提安装了visual studio 2015 PS.几乎所有方式,x64的编译都会有点坑,鉴于网上的x86编译方式非常的多,所以不再累赘x86的编译方式 zlib下载源: 官网:http: ...
- centos7编译python3.6与原有的2.7共存
在某些场景下我们可能需要python2.7和python3这两个版本进行共存,我在工作中也遇到过这样的问题,所以今天来总结下我的安装过程, 我的是用源码包安装的,安装的是python3.6的版本. 安 ...
- iOS-APP启动页加载广告
概述 加载广告页, 展现跳过按钮实现倒计时功能, 并判断广告页面是否更新. 详细 代码下载:http://www.demodashi.com/demo/10698.html 目前市场上很多APP(如淘 ...
- java测试Unicode编码以及数组的运用(初学篇)
/*第二章第四小题*/ /* * (1)编写一个应用程序,给出汉字“你” ,“我”,“他”在Unicode 表中的位置 * (2)编写一个java应用程序,输出全部的希腊字母 */ public cl ...
- Web前端开发笔试&面试_01(mi:)
—— (al_me16041719002000) begin—— 1.(单选)下面哪个方法是String对象和Array对象都有的? A.splice B.split C.replace D.conc ...
- 在rhel6上安装Python 2.7和Python 3.3
安装前,操作系统软件包准备编译python要安装development tools.此外,还要安装一些其他的libs,没有这些libs,python的interpreter可能会无法正常工作 # yu ...