DBCC CHECKIDENT 和SET IDENTITY_INSERT table OFF
Posted 夏天里的Jasmine
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DBCC CHECKIDENT 和SET IDENTITY_INSERT table OFF相关的知识,希望对你有一定的参考价值。
TRUNCATE TABLE [DBO].TRACKING_CODE_BASE_Jasmine
DELETE FROM TRACKING_CODE_BASE_Jasmine
有同一张表,一次用truncate命令做清空处理,一次删除全部数据
DBCC CHECKIDENT(TRACKING_CODE_BASE_Jasmine,RESEED,0)
更改自身自增ID
IF NOT EXISTS (SELECT * FROM DBO.SYSOBJECTS WHERE ID = OBJECT_ID(N\'[DBO].[TRACKING_CODE_BASE_Jasmine]\') AND OBJECTPROPERTY(ID, N\'ISUSERTABLE\') = 1)
BEGIN
CREATE TABLE [DBO].TRACKING_CODE_BASE_Jasmine (
[PSP_ID] [INT] NULL,
[PSP_LST_ID] [INT] NULL,
[LST_SMS_CONTENT] VARCHAR(600) NULL,
[ROW_NUM] INT IDENTITY(1,1) NOT NULL
)
END
TRUNCATE TABLE [DBO].TRACKING_CODE_BASE_Jasmine
每次执行的自增开始,不一样了。
新表或者之前truncate过此表,0开始
不是新表或者之前delete过,从一开始
新表(刚建好还没有插入过数据):自动增量会从0开始
空表(曾经插入过数据,但是现在是空的):自动增量会从1开始
如果希望从指定的值开始,可以按照下面的表进行操作。
有些表的某些字段创建了自增值,
在进行数据测试的时候,有时候希望插入自己设定的id值,要怎么操作?
以mssql数据库为例,
关闭自增设置
背景: 我们常常有一些导入和导出,比如,导出昨天将商品加入心愿单中的客户,像导出表中,生成的心愿单id是自增的。
在进行proc自动化测试的时候,我们会根据测试用例,涉及自动化测试的脚本,如果导出表每次自增,那生成的会员,不那么好验证,【总觉得这个例子不那么好理解】
此时需要关闭自增
SET IDENTITY_INSERT table OFF
SET IDENTITY_INSERT table ON
SET IDENTITY_INSERT HWISHLIST OFF
SET IDENTITY_INSERT CHANEL_PI_OPT_FLAG ON
以上是关于DBCC CHECKIDENT 和SET IDENTITY_INSERT table OFF的主要内容,如果未能解决你的问题,请参考以下文章
SQLServer数据库DBCC CHECKIDENT命令介绍