2009-06-02 5 views
27

Fondamentalement, j'ai un deux bases de données sur SQL Server 2005.Copie des données d'une table dans une base de données à une autre base de données séparée

Je veux prendre les données de la table d'une base de données et le copier à la table d'une autre base de données.

J'ai essayé ceci:

SELECT * INTO dbo.DB1.TempTable FROM dbo.DB2.TempTable 

Cela ne fonctionne pas.

Je ne veux pas utiliser une restauration pour éviter la perte de données ...

Toutes les idées?

Répondre

44

Vous devrez utiliser INSERT. En outre, vous avez inversé les noms de base de données et de propriétaire.

INSERT INTO DB1.dbo.TempTable 
SELECT * FROM DB2.dbo.TempTable 
+0

Je pensais que je l'avais mais j'ai eu cette erreur. Un travail pour ça? Une valeur explicite pour la colonne d'identité dans la table 'DB1.dbo.TempTable ' peut uniquement être spécifiée lorsqu'une liste de colonnes est utilisée et IDENTITY_INSERT sur ON. – Gabe

+0

J'ai essayé ceci: SET IDENTITY_INSERT DB1.dbo.TempTable SUR GO INSERT INTO DB1.dbo.TempTable SELECT * FROM DB2.dbo.TempTable - Désactiver IDENTITY_INSERT. SET IDENTITY_INSERT DB1.dbo.TempTable OFF GO – Gabe

8

Il est db1.dbo.TempTable et db2.dbo.TempTable

Le schéma de nommage en quatre parties va:

ServerName.DatabaseName.Schema.Object

0

Essayez cette

INSERT INTO dbo.DB1.TempTable 
    (COLUMNS) 
    SELECT COLUMNS_IN_SAME_ORDER FROM dbo.DB2.TempTable 

Cela échouera uniquement si un élément dans dbo.DB2.TempTable est déjà dans dbo.DB1.TempTable. SELECT ... INTO crée une nouvelle table.

9

SELECT * INTO nécessite que la table de destination n'existe pas.

Essayez ceci.

INSERT INTO db1.dbo.TempTable 
(List of columns here) 
SELECT (Same list of columns here) 
FROM db2.dbo.TempTable 
5

Difficile à dire sans aucune idée de ce que vous entendez par "ça n'a pas marché". Il y a beaucoup de choses qui peuvent mal tourner et les conseils que nous donnons pour résoudre ces problèmes peuvent vous conduire de plus en plus à trouver une solution, ce qui peut être très simple.

Voici une chose que je chercherais bien,

Identity Insérer doit être sur la table que vous importez dans si cette table contient un champ d'identité et vous fournissez manuellement. L'insertion d'identité ne peut être activée que pour 1 table à la fois dans une base de données. Vous devez donc vous souvenir de l'activer pour la table, puis la désactiver immédiatement après l'importation.

Aussi, essayez liste tous vos champs

INSERT INTO db1.user.MyTable (Col1, Col2, Col3) 
SELECT Col1, COl2, Col3 FROM db2.user.MyTable 
2

Nous pouvons nommer trois parties comme database_name..object_name

La requête ci-dessous va créer la table dans notre base de données (avec des contraintes sur)

SELECT * 
INTO DestinationDB..MyDestinationTable 
FROM SourceDB..MySourceTable 

Sinon, vous pouvez:

INSERT INTO DestinationDB..MyDestinationTable 
SELECT * FROM SourceDB..MySourceTable 

Si votre table de destination existe et est vide.

1
INSERT INTO DB1.dbo.TempTable 
SELECT * FROM DB2.dbo.TempTable 

Si nous utilisons cette requête, il retournera Primary key error .... donc mieux choisir les colonnes doivent être déplacées, comme

INSERT INTO db1.dbo.TempTable // (List of columns here) 
SELECT (Same list of columns here) 
FROM db2.dbo.TempTable 
1

Ne pas oublier d'insérer SET IDENTITY_INSERT MobileApplication1 ON vers le haut, sinon vous aurez une erreur. Ceci est pour SQL Server

SET IDENTITY_INSERT MOB.MobileApplication1 ON 
INSERT INTO [SERVER1].DB.MOB.MobileApplication1 m 
     (m.MobileApplicationDetailId, 
     m.MobilePlatformId) 
SELECT ma.MobileApplicationId, 
     ma.MobilePlatformId 
FROM [SERVER2].DB.MOB.MobileApplication2 ma 
1

Im préfère celui-ci.

INSERT INTO 'DB_NAME' 
(SELECT * from '[email protected]_LINK') 
MINUS 
(SELECT * FROM 'DB_NAME'); 

Ce qui signifie insérera qui ne soit inclus sur DB_NAME mais inclus dans [email protected]_LINK. J'espère que cette aide.

0

Cela fonctionne avec succès.

INSERT INTO DestinationDB.dbo.DestinationTable (col1,col1) 
SELECT Src-col1,Src-col2 FROM SourceDB.dbo.SourceTable 
Questions connexes