SQL 自增长列identity 数据同步问题,批量更新自增长列的Seed
时间:2010-12-17 来源:沉默的心
如果只有个别表,可以使用
DEclARE @autoid int
set @autoid=(SELECT MAX(autoid) FROM mysqlpub)
if @autoid is NULL
SET @autoid=0
DBCC CHECKIDENT (mysqlpub, RESEED,@autoid)
来更新自增长列当前的Seed。
如果含有表比较多,可以结合游标批量操作
declare @tableName varchar(50)
declare @colName varchar(20)
declare @SQL varchar(2000)
declare tmpCursor cursor
for select o.name,c.name from sysobjects o, sys.columns c
where o.id=c.object_id and o.xtype='U' and o.name like 'tap%' and is_identity=1
open tmpCursor
fetch next from tmpCursor into @tableName,@colName
while @@FETCH_STATUS = 0
begin
SET @SQL = 'DEclARE @autoid int ' + CHAR(13)
+ ' set @autoid=(SELECT MAX(IDENTITYCOL)+1 FROM '+@tableName+') ' + CHAR(13)
+ 'if @autoid is NULL '+ CHAR(13)
+' SET @autoid=10000 '+ CHAR(13)
+ ' DBCC CHECKIDENT ('+@tableName+', RESEED,@autoid)'+ CHAR(13)
EXEC(@SQL)
--SELECT @SQL
fetch next from tmpCursor into @tableName,@colName
end
close tmpCursor
deallocate tmpCursor
- 系统休眠文件删除后果 如何删除计算机的休眠文件 2025-04-22
- 站群服务器是什么意思 站群服务器的作用 站群服务器和普通服务器的区别 2025-04-22
- jQuery插件有何作用 jQuery插件的使用方法 2025-04-22
- jQuery插件有哪些种类 简单的jQuery插件实例 2025-04-22
-