2012-05-15 4 views
-2

Je actuellement deux bases de données différentes, et je voudrais copier ou fusionner toutes les colonnes de la table A dans le tableau B. J'utilise les commandes suivantesfusionner des tables dans deux bases de données

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

Ce que je voudrais

Par exemple, la base de données A contient des tables (A_1, A_2); la base de données B contient des tables (B_1, B_2); et le B nouvellement créé devrait être (A_1, A_2, B_1, B_2)

Merci ça ça ne marche pas du tout;

+0

Est-ce MySQL ou SQL Server? – Pondlife

Répondre

0

Créez un serveur de liens vers mysql dans sql-server et utilisez openquery pour accéder aux tables depuis la base de données mysql.

Comment créer serveur de liaison de MySql dans SqlServer

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 

Comment accéder aux données de table de mySql par linkserver.

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

Donc mon problème ne peut pas être résolu en utilisant la ligne de commande du tout? – solomon

+0

Que voulez-vous dire par ligne de commande. Essayez-vous d'accéder aux tables mysql et d'essayer de mettre à jour le serveur sql. est-ce correct? –

1

Je ne vous ai pas eu.

Voulez-vous fusionner des colonnes d'une table

ou fusionner des tables d'une base de données?

Pour fusionner des colonnes de 2 tables en 1 table

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

mais de fusionner toutes les tables dans une base de données, qui est beaucoup plus simple. Créez simplement la base de données et importez les tables à partir des deux DB.

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

Ce code est incorrect.

C'est simple exemple pour le serveur SQL:

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

ou

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

et je suggère aux colonnes d'écriture explicites dans les tableaux.

Questions connexes