重置sqlserver自增长列的种子

重置sqlserver自增长列的种子

转自:http://hi.baidu.com/zbphot/item/41c55982c2d02dd05e0ec184

如果表中的数据不要了,用下面的语句:  truncate table表

如果表中的语句还要,用下面的语句:  DBCC CHECKIDENT (表名, RESEED, 1)

DBCC CHECKIDENT (‘table_name‘, NORESEED) 不重置当前标识值。

DBCC CHECKIDENT 返回一个报表,它指明当前标识值和应有的标识值。

DBCC CHECKIDENT (‘table_name‘)或DBCC CHECKIDENT (‘table_name‘, RESEED)  如果表的当前标识值小于列中存储的最大标识值,则使用标识列中的最大值对其进行重置。

DBCC CHECKIDENT (‘table_name‘, RESEED, new_reseed_value)  当前值设置为 new_reseed_value。 如果自创建表后没有将行插入该表,则在执行  DBCC CHECKIDENT 后插入的第一行将使用 new_reseed_value 作为标识。 否则,下一个插入的行将使用 new_reseed_value + 1。 如果 new_reseed_value 的值小于标识列中的最大值, 以后引用该表时将产生 2627 号错误信息。

如果表中的语句还要,用下面的语句:

DBCC CHECKIDENT (表名, RESEED, 1)

DBCC CHECKIDENT (‘table_name‘, NORESEED) 不重置当前标识值。

DBCC CHECKIDENT 返回一个报表,它指明当前标识值和应有的标识值。

DBCC CHECKIDENT (‘table_name‘)或DBCC CHECKIDENT (‘table_name‘, RESEED)  如果表的当前标识值小于列中存储的最大标识值,则使用标识列中的最大值对其进行重置。  DBCC CHECKIDENT (‘table_name‘, RESEED, new_reseed_value)  当前值设置为 new_reseed_value,一般new_reseed_value是当前最大的ID值。 如果自创建表后没有将行插入该表,则在执行  DBCC CHECKIDENT 后插入的第一行将使用 new_reseed_value 作为标识。 否则,下一个插入的行将使用 new_reseed_value + 1。 如果 new_reseed_value 的值小于标识列中的最大值, 以后引用该表时将产生 主键冲突的错误

重置sqlserver自增长列的种子

时间: 2024-10-08 23:47:12

重置sqlserver自增长列的种子的相关文章

SQLite Expert 删除表数据并重置自动增长列

用下面的语句肯定是行不通的,语句不支持 truncate table t_Records 方法:1.删除表数据 delete from t_Records where 1==1 2.重置自动增长列 update sqlite_sequence set seq=0 where name='t_Records' /*name :是表名*/ SQLite Expert软件网址:  http://www.sqliteexpert.com/

解决SQLServer服务器重启后自动增长列倍增问题

我在使用 SQL Server 2012 时出现了自动增长列从1 2 3变成1001 1002 1003的情况,网上找了下发现说是微软故意这么弄的,要想不倍增可使用以下方法: 1.打开配置管理器(SQL Server Configuration Manager)开始-Microsoft SQL Server 2012-配置工具-SQL Server 配置管理器 2.选择你需要使用的服务器 3.点击属性 4.添加 -t272 参数,是小写,确定 5.重新启动,PS:重新启动的第一次添加还是会倍增,

使用sql语句创建修改SQL Server标识列(即自动增长列)

一.标识列的定义以及特点SQL Server中的标识列又称标识符列,习惯上又叫自增列.该种列具有以下三种特点:1.列的数据类型为不带小数的数值类型2.在进行插入(Insert)操作时,该列的值是由系统按一定规律生成,不允许空值3.列值不重复,具有标识表中每一行的作用,每个表只能有一个标识列.由于以上特点,使得标识列在数据库的设计中得到广泛的使用.二.标识列的组成创建一个标识列,通常要指定三个内容:1.类型(type)在SQL Server 2000中,标识列类型必须是数值类型,如下:decima

重置sql server标识列

sql server标识列是大家非常熟悉的了,下面为您介绍了sql server标识列重置的一些知识,如果您对sql server标识列方面感兴趣的话,不妨一看. 1.删除表内所有值并重置标识值 TRUNCATE TABLE TableName 2.保持表的内容,并重置自动编号列的SEED DBCC CHECKIDENT ('table_name', RESEED, new_reseed_value) 如dbcc checkident ("bc_pos",reseed,1)即可,但如果

SQL Server 2012 自动增长列,值跳跃问题

介绍 从 SQL Server 2012 版本开始, 当SQL Server 实例重启之后,表格的自动增长列的值会发生跳跃,而具体的跳跃值的大小是根据增长列的数据类型而定的.如果数据类型是 整型(int),那么跳跃值为 1000:如果数据类型为 长整型(bigint),那么跳跃值为 10000.从我们的项目来看,这种跳跃问题是不能被接受的,尤其是展示在客户端的时候.这个奇怪的问题只在 SQL Server 2012 及更高的版本中存在,SQL Server 2012之前版本不存在此问题. 背景

SQL获取刚插入的记录的自动增长列ID的值

假设表结构如下: CREATE TABLE TestTable ( id int identity, CreatedDate datetime ) SQL2005获得新增行的自动增长列的语句如下: insert into TestTable (CreatedDate)  output  inserted.id  values (getdate()) SQL2000获得新增行的自动增长列的语句如下: insert into TestTable (CreatedDate)  values (getd

SQL SERVER 中在自动增长列中插入值

如果想在自动增长列中插入值,如果没有设置 IDENTITY_INSERT 为 ON 的话会出现如下错误 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'dbo.table' 中的标识列插入显式值. 解决问题的办法是: SET IDENTITY_INSERT [TableName] ON 在插入完成以后可以通过: SET IDENTITY_INSERT [TableName] OFF 关闭 IDENTITY_INSERT

SQL关闭自增长列标识:SET IDENTITY_INSERT

关闭自增长列添加记录,然后再恢复自增长功能 1 SET IDENTITY_INSERT 表名 ON; 2 inert into tables(字段,字段) values(22,44); 3 SET IDENTITY_INSERT 表名 OFF

sqlserver 行转列 语文,数学,物理,化学

数据库查询行转列 1.原数据库值 stdname stdsubject result 张三 语文 80 张三 数学 90 张三 物理 85 李四 语文 85 李四 数学 92 李四 物理 82 李四 化学 82 李四 化学 82 2.要得到如下表 stdname 语文 数学 物理 化学 李四 85 92 82 164 张三 80 90 85 NULL 3.实现方法 --第一种 调用行转列函数 select * from (select stdname,stdsubject,result from