web-dev-qa-db-fra.com

SQL Server Copie de tables d'une base de données à une autre

J'ai deux bases de données, l'une s'appelle Natalie_playground et l'autre LiveDB. Puisque je veux m'exercer à insérer, mettre à jour des choses, je veux copier certaines des tables de la LiveDB à Natalie_playground.

Les tables que je veux copier sont appelées: Customers, Computers, Cellphones, Prices

Ce que j’ai essayé de faire, c’est que (avec SSMS) faites un clic droit sur une table mais qu’il n’y ait pas de copie dedans! 

8
Natalia Natalie

En supposant que vous ayez deux bases de données, par exemple A et B:

  • Si la table cible n'existe pas, le script suivant créera (je ne le recommande pas de cette façon):

    SELECT table_A.FIELD_1, table_A.FIELD_2,......, table_A.FIELD_N 
    INTO COPY_TABLE_HERE 
    FROM  A.dbo.table_from_A table_A
    
  • Si la table cible existe, alors:

     INSERT INTO TABLE_TARGET 
     SELECT table_A.FIELD_1, table_A.FIELD_2,......, table_A.FIELD_N 
     FROM  A.dbo.table_from_A table_A
    

Remarque: si vous voulez apprendre et pratiquer cela, vous pouvez utiliser les scripts précédents, mais si vous souhaitez copier la structure complète et les données d'une base de données sur une autre, vous devez utiliser "Sauvegarde et restauration de la base de données" ou "Générer une base de données de scripts avec des données" et exécutez ceci dans une autre base de données.

9
Gaston Flores

Faites un clic droit sur votre base de données -> sous Tâches choisissez Générez des scripts , suivez les instructions de l'assistant, choisissez vos tables et cochez la case "" Données de table de script "(ou similaire), générez-la à un script SQL et exécutez-le sur votre autre base de données.

8
Ron.B.I

Vous pouvez également essayer l'assistant d'importation/exportation SQL Server. Si les tables cible n'existent pas déjà, elles seront créées lors de l'exécution de l'Assistant.

Consultez MSDN pour plus de détails http://msdn.Microsoft.com/en-us/library/ms141209.aspx

4
Timothy Walden

J'ai trouvé un moyen facile à partir d'un autre blog. J'espère que cela pourrait être utile.

Select * into DestinationDB.dbo.tableName from SourceDB.dbo.SourceTable  

http://www.codeproject.com/Tips/664327/Copy-Table-Schema-and-Data-From-One-Database-to-An

2
Learner

Essaye ça:

Si la table cible existe: 

SELECT SourceTableAlias.*
INTO TargetDB.dbo.TargetTable
FROM  SourceDB.dbo.SourceTable SourceTableAlias

Et si la table cible n’existe pas: 

 INSERT INTO TargetDB.dbo.TargetTable 
 SELECT SourceTableAlias.*
 FROM SourceDB.dbo.SourceTable SourceTableAlias

Bonne chance!

1
jamshid

essaye ça 

USE TargetDatabase
GO

INSERT INTO dbo.TargetTable(field1, field2, field3)
SELECT field1, field2, field3
FROM SourceDatabase.dbo.SourceTable
WHERE (some condition)
0

Si vous souhaitez copier uniquement le schéma des tables, vous pouvez ajouter une condition fausse à la fin des requêtes mentionnées.

ex.

SELECT table_A.FIELD_1, ..., table_A.FIELD_N 
INTO LiveDB.custom_table
FROM  Natalie_playground.dbo.custom_table table_A
WHERE 0 > 1
0
Emad Armoun