SQL 重置自增列的值 批量处理
Declare @IdentityTable sysname,
@IdentityColumn sysname,
@TotalRows int,
@i int,
@Iden int,
@Sql varchar(4000)
SET NOCOUNT ON
--标识列表
Create Table #IDENTITY_Table
(
SeqID_int int identity(1,1),
IDENTITY_TABLE sysname null,
IDENTITY_COLUMN sysname null,
IDENTITY_MAX int null default(0)
)
Create Table #IDENTITY_Table_Column_Value
(
IDENTITY_MAX int
)
Insert Into #IDENTITY_Table(IDENTITY_TABLE,IDENTITY_COLUMN)
Select --'select IDENT_CURRENT(''' + Obj.name + ''')',
Obj.name,
Col.name
From sys.tables AS Obj left outer join sys.columns AS Col on Obj.object_id = Col.object_id
and Col.is_identity = 1
Where Obj.type = 'U'
and objectproperty(object_id(Obj.name),'TableHasIdentity') = 1;
Set @TotalRows = @@ROWCOUNT;
Set @i = 1;
--循环得到每一个标识列表,然后更新为当前最大标识列值
WHILE(@i <= @TotalRows)
Begin
Select @IdentityTable = IDENTITY_TABLE,
@IdentityColumn = IDENTITY_COLUMN
From #IDENTITY_Table
Where SeqID_int = @i;
Set @Sql = 'Insert into #IDENTITY_Table_Column_Value' + char(10) + 'select max(' + @IdentityColumn + ') + 1 from ' + @IdentityTable;
--print @Sql
EXEC (@Sql);
Select @Iden = IDENTITY_MAX from #IDENTITY_Table_Column_Value;
Set @Iden = IsNull(@Iden,1)
update #IDENTITY_Table
set IDENTITY_MAX = @Iden
where IDENTITY_TABLE = @IdentityTable;
--DBCC CHECKIDENT( @IdentityTable, RESEED, @Iden )
--print @IdentityTable + ',' + cast(@Iden as varchar(10))
Set @i = @i + 1;
Set @Iden = 0
Set @Sql = ''
truncate table #IDENTITY_Table_Column_Value
End
/*
Truncate Table #IDENTITY_Table;
Drop Table #IDENTITY_Table;
truncate table #IDENTITY_Table_Column_Value
drop table #IDENTITY_Table_Column_Value
*/
SET NOCOUNT OFF
-----------------------------------------------
--select 'DBCC CHECKIDENT(' + IDENTITY_TABLE + ',RESEED, ' + cast (IDENTITY_MAX as varchar(10)) + ')' from #IDENTITY_Table
select * from #IDENTITY_Table
转载于:https://www.cnblogs.com/xishi/p/5479071.html
SQL 重置自增列的值 批量处理相关推荐
- SQL中获取刚插入记录时对应的自增列的值
--创建数据库和表 create database MyDataBase use MyDataBase create table mytable ( id int identity(1,1), nam ...
- oracle sql 拼接遇到参数值,sql 将某一列的值拼接成字符串
) set @str='' -- 必须先赋值 ))+',' from( select [objid],sfrq from tablename ) tb order by tb.sfrq print @ ...
- MySQL内核月报 2015.01-MySQL · 捉虫动态· InnoDB自增列重复值问题
问题重现 先从问题入手,重现下这个bug 这里我们关闭mysql,再启动mysql,然后再插入一条数据 我们看到插入了(2,2),而如果我没有重启,插入同样数据我们得到的应该是(4,2). 上面的测试 ...
- SQL Server:向 SQL Server 自增字段插入值 (转)
SQL Server:向 SQL Server 自增字段插入值 [鹏城万里] 发表于 www.sqlstudy.com 通常情况下,不能向 SQL Server 自增字段插入值,如果非要这么干的话,S ...
- SQL Server 重置Identity标识列的值(INT爆了)
一.背景 SQL Server数据库中表A中Id字段的定义是:[Id] [int] IDENTITY(1,1),随着数据的不断增长,Id值已经接近2147483647(int的取值范围为:-2 147 ...
- Sql Server中查看/修改identity(自增列)的值
查看某个表中的自增列当前的值:DBCC CHECKIDENT (TableName) 修改某个表中的自增列当前的值:DBCC CHECKIDENT (TableName, RESE ...
- html连接数据库id号自动生成器,SQL Server数据库sql语句生成器(SqlDataToScript)的使用(sql server自增列(id)插入固定值)...
SqlDataToScript是根据表数据进行生成 Insert Into语句,此工具还有一个好处是可以对自增列插入固定值,例如:自增的列id值为5,但是5这个行值已经删除,如果想存储Id自增列值为5 ...
- oracle自增列问题i,Oracle序列 和 SQL SERVER 自增列的问题-oracle
现对一表进行如下操作,主键为ID 1.定义并启动一个事务 2.使用com智能指针打开表 _RecordsetPtr pRecPtr = m_pAdoDb->OpenTable(strSQL,ad ...
- Qt清空表数据并重置自增列(sqlite+mysql)
void DBHelper::clearData(const QString &tableName) {QString sql;QSqlQuery query;if (App::LocalDB ...
最新文章
- 中南林业科技大学的计算机研究生分数线,2019中南林业科技大学研究生分数线汇总(含2016-2019历年复试)...
- python编辑用户登录界面_python编辑用户登入界面的实现代码
- mysql8報錯解決方案彙總(持續更新中)
- AT2165-[AGC006D]MedianPyramidHard【二分,贪心】
- java api class_Java API:Object class
- Git 的BUG小结
- 20155238 2016-2017-2 《Java程序设计》第六周学习总结
- 定位日站大法之-社会工程学
- qq2008珊瑚虫版SL
- 老男孩linux高端运维课程—linux系统目录结构知识讲解
- IDEA好看的主题(自用)
- aac和mp3在码率压缩的一些事
- 机器学习面试笔试求职必背!八股文(1/5)
- 如何让别人看不懂java代码_为什么你写的代码别人看不懂?
- java设置cpu亲和性_cpu亲和性绑定
- 北京网络文化经营许可证资质办理有什么要求
- 界面(1):对话框和菜单 打印和按钮等杂项
- 简单python数据分析项目实例-入门Python数据分析最好的实战项目(一)
- Debian 查看与修改IP,设置多ip,network与networkManager配置
- 英雄连2显示无法连接服务器,英雄连2steam无法连接到更新服务器 | 手游网游页游攻略大全...
热门文章
- linux系统日志_第十二章:走进Linux世界——系统日志管理,日志轮转。
- UVA-11995(STL+模拟)附讲解
- JVM监控及诊断工具-命令行篇一
- 无线轮播android,Android无限轮播Banner的实现
- java实现二分法递归_Java递归实现二分法
- mysql select time,MySql查询时间段的方法
- A、B、C、D、E类IP地址都是怎么划分的?
- 为了让你在“口袋奇兵”聊遍全球,Serverless 做了什么?
- 从零开始入门 K8s | K8s 安全之访问控制
- 从零开始入门 K8s | 应用存储和持久化数据卷:核心知识