Reset Identity Column Value in SQL Server (Identity Reset)

前言:今天在群里看到有人在问SQL Server自增值重置问题(sqlserver identiy column value reset )

闲话少说,直接上代码:

正文:

--create table

--create test table
if not exists(select * from sysobjects where name = ‘Test_1‘)
    begin
        create table Test_1 (ID int identity(1,1) primary key,Name nvarchar(128),CreateDate datetime);
    end
else
    begin
        drop table Test_1;
        create table Test_1 (ID int identity(1,1) primary key,Name nvarchar(128),CreateDate datetime);
    end
go

--insert test data into table

declare @ID int;
select @ID = 1001;
while(@ID < 1101)
    begin
        insert into Test_1 values(‘Name‘+ CONVERT(nvarchar(128),@ID),GETDATE());
        select @ID = @ID + 1;
    end
--select data from test table
select * from Test_1;

--delete data

--delete data from test table
delete from Test_1;

--reset identity

DBCC CHECKIDENT (Test_1, RESEED,0)

再次执行插入语句后查看结果

--insert data into test table
declare @ID int;
select @ID = 1001;
while(@ID < 1101)
    begin
        insert into Test_1 values(‘NameS‘+ CONVERT(nvarchar(128),@ID),GETDATE());--PS:第二次Name值有改动
        select @ID = @ID + 1;
    end
select * from Test_1;

结束语:DBCC CHECKIDENT (Test_1, RESEED,0) -- reset identity value

时间: 2024-11-09 05:57:33

Reset Identity Column Value in SQL Server (Identity Reset)的相关文章

SQL Server identity种子

背景: 用identity修饰列可以使它自动增长 例了: create table T(ID int not null identity(1,1),      Data nvarchar(32)); 插入数据 declare @i as int =1;     while(@i<10)     begin           insert into T values(replicate(cast(@i as nchar(1)),10))           set @i = @i +1;   

SQL SERVER -&gt;&gt; IDENTITY相关函数

IDENTITY函数 -- 只能用在SELECT INTO语句中,用于在插入数据的时候模拟IDENTITY属性的作用生成自增长值. SELECT IDENTITY(int, 1,1) AS ID_Num INTO NewTable FROM OldTable; IDENT_INCR 函数 -- 返回表的自动增长值,比如我们希望每次增长1,那这个函数就会返回1. USE AdventureWorks2012; GO SELECT TABLE_SCHEMA, TABLE_NAME, IDENT_IN

ASP.NET MVC Identity 使用自己的SQL Server数据库

之前在网上看到的一篇后来找不到了,现在自己记录一下. 1.在web.config中添加一个数据库连接. <add name="dataContext" connectionString="Data Source=.;Initial Catalog=MVC1;User ID=XXX;password=XXX" providerName="System.Data.SqlClient" /> 2.打开IdentityModels.cs文件,

Microsoft SQL Server Version List(SQL Server 版本)

原帖地址 What version of SQL Server do I have? This unofficial build chart lists all of the known Service Packs (SP), Cumulative Updates (CU), patches, hotfixes and other builds of MS SQL Server 2014, 2012, 2008 R2, 2008, 2005, 2000, 7.0, 6.5 and 6.0 tha

SQL Server Column Store Indeses

SQL Server Column Store Indeses SQL Server Column Store Indeses. 1 1. 概述... 1 2. 索引存储... 2 2.1 列式索引存储... 2 2.2 数据编码和压缩... 3 2.2.1 编码... 3 2.2.2 优化行顺序... 4 2.2.3 压缩... 4 2.3 I/O和Cache. 4 3 查询处理和优化... 4 3.1 查询处理加强... 4 3.2 查询优化 1. 概述 SQL Server 11增加了新特

iBatis自动生成的主键 (Oracle,MS Sql Server,MySQL)【转】

iBatis的sqlMap配置文件的selectKey元素有个type属性,可以指定pre或者post表示前生成(pre)还是后生成(post). Oracle设置 Xml代码   <!-- Oracle SEQUENCE --> <insert id="insertProduct-ORACLE" parameterClass="com.domain.Product"> <selectKey resultClass="int&

How to add the ApplicationPoolIdentity to a SQL Server Login

The ApplicationPoolIdentity is a virtual account in Windows that is dynamically generated when the application pools is created and takes on the name of the application pool in this manner: IIS Apppool\<name of application pool> . For instance, the

07 SQL Server中的Identity列(Identity Column in SQL Server)

如果创建新表的时候将一个列设置为Identity,那么在插入数据的时候可以不显示的指定值,SQL Server会自动填充该列的值. Create Table tblPerson1 ( PersonId Int Identity(1,1) Primary key Not Null, Name Nvarchar(50) null ) 此时,可用下面的代码向表中插入数据.虽然tblPerson表有两列,但在插入的时候只用指定Name的值即可,因为PersonId的属性为Identity,在插入数据时S

SQL Server 重置Identity标识列的值(INT爆了)(转载)

一.背景 SQL Server数据库中表A中Id字段的定义是:[Id] [int] IDENTITY(1,1),随着数据的不断增长,Id值已经接近2147483647(int的取值范围为:-2 147 483 648 到 2 147 483 647)了,虽然已经对旧数据进行归档,但是这个表需要保留最近的1亿数据,有什么方法解决Id值就快爆的问题呢? 解决上面的问题有两个办法:一个是修改表结构,把Id的int数据类型修改为bigint:第二个是重置Id(Identity标识列)的值,使它重新增长.