合并两个数据库中的表

时间:2012-05-15 08:05:44

标签: mysql sql sql-server

我目前有两个不同的数据库,我想将表A中的所有列复制或合并到表B中。我使用以下命令

USE B;
INSERT INTO B SELECT * FROM A.col1;
INSERT INTO B SELECT * FROM A.col2;
etc

我想要实现的是

例如,数据库A包含表(A_1,A_2);数据库B包含表(B_1,B_2); 新创建的B应为(A_1,A_2,B_1,B_2)

谢谢Gosh它根本不起作用;

3 个答案:

答案 0 :(得分:1)

我没有得到你。

是否要合并表格的列

或合并数据库的表?

将2个表的列合并为1个表

select t1.col1,t1.col2,t2.col1,t2.col2
into newtable 
from table1,table2

但要合并数据库中的所有表,这要简单得多。 只需创建数据库并从两个DB导入表。

答案 1 :(得分:0)

在sql-server中创建一个到mysql的链接服务器,并使用openquery从mysql数据库访问这些表。

如何在SqlServer中创建MySql的链接服务器

EXEC master.dbo.sp_addlinkedserver @server = N'LinkServerName', 
@srvproduct=N'anything',
 @provider=N'MSDASQL',
  @datasrc=N'DBNAME', 
  @provstr=N'gr_uid=userid; gr_pwd=password',
   @catalog=N'dbase'

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'LinkServerName',
@useself=N'false',
@locallogin=null,
@rmtuser=userid,
@rmtpassword=password

如何通过LinkServer从mySql访问表数据。

Select *  FROM OPENQUERY([LinkServerName],'SELECT * FROM MySqlTableName')

答案 2 :(得分:0)

USE B;
INSERT INTO B SELECT * FROM A.col1;
INSERT INTO B SELECT * FROM A.col2;
etc

该代码不正确。

这是sql server的简单示例:

USE [DATABASE];
INSERT INTO [DESTINATION TABLE] SELECT * FROM [DATABASE].[SCHEMA].[SOURCE TABLE]

SELECT * INTO [NEW TABLE] FROM [DATABASE].[SCHEMA].[SOURCE TABLE]

我建议在表格中明确写出列。