SQL 自增长列identity 数据同步问题,批量更新自增长列的Seed
2010-12-17 23:08
543 查看
使用SQL 进行数据同步后,自增长列的数据只是进行了数据同步,但是对应的Seed并没有增长。
如果只有个别表,可以使用
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
如果只有个别表,可以使用
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
相关文章推荐
- SQL之merge into 批量更新数据 sql数据同步 基于源表对目标表做Insert,Update,Delete操作
- 同步DataContext,解决linq to sql更新数据的问题
- SQL Server实时同步更新远程数据库遇到的问题小结
- CommandBuilder对象自动生成SQL语句对数据进行批量更新(单表)
- SQL中两个关联表批量更新数据的方法
- Mysql 一条SQL语句实现批量更新数据,update结合case、when和then的使用案例
- sqlite3更新数据库问题 SQL执行成功但数据库数据不改变
- 将b表中的数据覆盖到a表中的sql(批量更新数据sql)
- C# SqlDataAdapter.update结合事务(SqlTransaction)批量更新数据
- Mysql bench执行sql语句批量操作数据所遇到的问题
- SQL 批量 更新 表所对应数据
- sql自动增长标识导致导入数据问题的解决方法
- Mysql 一条SQL语句实现批量更新数据,update结合case、when和then的使用案例
- 批量更新数据问题
- Silverlight 解决 更新数据后 datagrid同步问题
- linq2sql 更新数据问题
- DataGrid的数据更新不同步问题(VS2010)
- listview分页加载刷新——--填充数据,适配器更新与UI同步更新问题
- SqlCommandBuilder 批量更新数据库的怪异问题?
- .Net下批量删除数据的存储过程问题(用动态SQL )