日期:2014-05-17 浏览次数:20467 次
肯定不一样啊?你的identity,种子默认是从1开始的。所有。。。 如果两个数据库子一个机器上你可尝试是使用: insert into B.table select * from A.table(记得取消B.talbe的自增长属性)
------解决方案--------------------
把所有有自增列的目标表的这个属性打开,再导入。
SET IDENTITY_INSERT 表名 ON
完事后然后再把它关上
SET IDENTITY_INSERT 表名 OFF
------解决方案--------------------
我之前也试过,尝试了一下把另一台机器上的一个数据库导入到本地
首先,把远程机器上数据库的定义语句都导出来,注意这里倒出来的定义语句包含了2个部分,第一个是表的定义语句,第二是这个表可能会引用其他表,也就是表和表之间有主外键的关系,所以只能运行那部分表定义的语句,而不能运行那部分定义表与表之间关系的语句。
然后,写了一个动态的语句,可以生成类似这样的语句:
set identity_insert dbo.表名 on
insert into 目标库.dbo.表名
select *
from 源库.dbo.表名
set identity_insert dbo.表名 off
这样的语句生成后,自动执行,就能批量导入数据了,只是因为表中的数据量比较大(上千万条),所以速度比较慢。如果只是需要原来的数据库,还不如直接备份数据库,还原到本地,这样可能更好一些。