先要了解各个市级的数据库表结构,是否有主键,合并的时候要考虑重复问题。可以參考:一、如市级数据库表: tb_1(ID int identity(1,1) primary key,Name nvarchar(50)) ... ...二、那么省级数据库表,可以这样: tb_1(ID int idenity(1,1) primary key,City_id int,tb_1_ID int, Name) --tb_1_ID 是市级表的主键 ..... .... --各城市master表: sys_city_master (ID smallint identity(1,1) primary key ,city_name nvarchar(50)) 三、合并数据(在省级数据库操作):insert into tb_1(City_id,tb_1_ID ,Name) select 1 as city_id,ID,Name From city_1_db.dbo.tb_1 union all select 2 as city_id,ID,Name From city_2_db.dbo.tb_1 union all select 3 as city_id,ID,Name From city_3_db.dbo.tb_1 union all .... ........ ....
就是考虑到数据量很大的时候,insert会不会效率太低。想问一下有没有直接可以合并两个数据库的办法?
如果没有的话,merge into 或者bulk into 会不会比直接insert好?
比如我现在电脑里有A~E 5个数据库,每个数据库中都有10张表,分别是人员登记表以及对应的收入表、家庭住址表等,每个库对应的表结构是完全一样的。
现在省里面统计数据,新建一个库S,也是10张表,每张表都要汇总5个市的数据(假设5个库里面数据无重复)
SSIS可以把A数据库的数据导入B库?
tb_1(ID int identity(1,1) primary key,Name nvarchar(50))
... ...二、那么省级数据库表,可以这样:
tb_1(ID int idenity(1,1) primary key,City_id int,tb_1_ID int, Name) --tb_1_ID 是市级表的主键
..... ....
--各城市master表:
sys_city_master (ID smallint identity(1,1) primary key ,city_name nvarchar(50))
三、合并数据(在省级数据库操作):insert into tb_1(City_id,tb_1_ID ,Name)
select 1 as city_id,ID,Name From city_1_db.dbo.tb_1 union all
select 2 as city_id,ID,Name From city_2_db.dbo.tb_1 union all
select 3 as city_id,ID,Name From city_3_db.dbo.tb_1 union all
.... ........ ....