首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

数据库数据导入导出有关问题主键ID有关问题

2012-09-06 
数据库数据导入导出问题主键ID问题我要把数据库A的数据导入到一个空的数据库B。我先导出A的脚本,在数据库B

数据库数据导入导出问题主键ID问题
我要把数据库A的数据导入到一个空的数据库B。
我先导出A的脚本,在数据库B中执行,然后把A的数据导入到B,为什么数据库表ID都是从1开始的啊,和A库的表不一样

[解决办法]
ID你设置的是自增的字段。如果要导出自增ID需要在导出向导里选择表后,选择编辑映射,然后勾选上启用标识插入才可以。
[解决办法]

SQL code
肯定不一样啊?你的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


这样的语句生成后,自动执行,就能批量导入数据了,只是因为表中的数据量比较大(上千万条),所以速度比较慢。如果只是需要原来的数据库,还不如直接备份数据库,还原到本地,这样可能更好一些。

热点排行