日期:2014-05-17  浏览次数:20589 次

sql数据转移
现在有一个问题,有数据库A和B,A内的表结构和B的表结构不一样,但是B需要的字段在A数据库里面都有,现在就是想通过视图将A里面的我需要的字段创建到一个视图中,然后通过视图把视图内的数据导入到B数据库中。。不知道有没有什么好的方法。。希望大家帮帮忙。。。
详细解释:
A数据库里面有一个表tA,字段如下:tA.a,tA.b,tA.c,tA.d,tA.e,tA.f,tA.g,tA.h
创建一个视图temp,里面包含有下面的字段:tA.c,tA.d,tA.g,tA.h
然后导入到B数据库中,B中有一个表tB,里面的字段如下:tB.a,tB.b,tB.c,tB.d
意在通过视图将tA.c,tA.d,tA.g,tA.h导入到B中对应的字段tB.a,tB.b,tB.c,tB.d中。。

------解决方案--------------------
SQL code

insert 数据库B..TA
select c,d,g,h from 数据库A..TA

------解决方案--------------------
inset into b..表 select 字段 from a..视图

其实你不用create view
直接


inset into b..表 select 语句就可以了

------解决方案--------------------
SQL code

--一个简单的例子

--我先把master数据库中的表spt_values的部分结构复制到我现在的数据库ZKWB

select [name],number,[type] into test
from master..spt_values where 1=2

select * from test
表test有以下字段:name ,number,type
表master..spt_values有name,number,type,low,high,status这些字段

现在我开始把master数据库中的表spt_values里的数据导入到ZKWB数据库中的表test

insert  ZKWB..test
select  [name],number,[type] from master..spt_values

select top 20 * from ZKWB..test
/*
name                                number      type
----------------------------------- ----------- ----
 (rpt)                              -32768      R  
YES OR NO                           -1          B  
SYSREMOTELOGINS TYPES               -1          F  
SYSREMOTELOGINS TYPES (UPDATE)      -1          F_U
AF: aggregate function              -1          O9T
AP: application                     -1          O9T
C : check cns                       -1          O9T
D : default (maybe cns)             -1          O9T
EN: event notification              -1          O9T
F : foreign key cns                 -1          O9T
FN: scalar function                 -1          O9T
FS: assembly scalar function        -1          O9T
FT: assembly table function         -1          O9T
IF: inline function                 -1          O9T
IS: inline scalar function          -1          O9T
IT: internal table                  -1          O9T
L : log                             -1          O9T
P : stored procedure                -1          O9T
PC : assembly stored procedure      -1          O9T
PK: primary key cns                 -1          O9T

(20 行受影响)


*/


try

------解决方案--------------------
同一个实例下,直接用

insert into B..b表 select 你需要的字段 from A..a表


复制表结构的话

select 你需要的字段 into B..b1表 from A..a表 where 1=2
------解决方案--------------------
无需视图 ,直接:
insert into B.dbo.tB(a,b,c,d)
select c,d,g,h from A.dbo.tA
------解决方案--------------------
探讨

SQL code

--一个简单的例子

--我先把master数据库中的表spt_values的部分结构复制到我现在的数据库ZKWB

select [name],number,[type] into test
from master..spt_values where 1=2

select * from test
表test有以下字段:name ,number,type
表master.……

------解决方案--------------------
方法1、
SQL code
insert into [目标库名].[架构名].[目标表名](字段名) 
select 字段名
from [源表]