码迷,mamicode.com
首页 > 数据库 > 详细

SQL 重置自增列的值 批量处理

时间:2016-05-10 20:37:21      阅读:341      评论:0      收藏:0      [点我收藏+]

标签:

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

SQL 重置自增列的值 批量处理

标签:

原文地址:http://www.cnblogs.com/xishi/p/5479071.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!