J'ai une base de données appelée foo et une base de données appelée bar. J'ai une table dans foo appelée tblFoobar que je veux déplacer (les données et tout) vers la barre de base de données depuis la base de données foo. Quelle est l'instruction SQL pour ce faire?
sql
sql-server
copy
migrate
database-table
RyanKeeter
la source
la source
La tâche «Importer des données» de SQL Server Management Studio (cliquez avec le bouton droit sur le nom de la base de données, puis tâches) fera la plupart de cela pour vous. Exécutez-le à partir de la base de données dans laquelle vous souhaitez copier les données.
Si les tables n'existent pas, elles seront créées pour vous, mais vous devrez probablement recréer tous les index et autres. Si les tables existent, il ajoutera les nouvelles données par défaut mais vous pouvez les ajuster (modifier les mappages) afin de supprimer toutes les données existantes.
Je l'utilise tout le temps et ça marche assez bien.
la source
WHERE
condition à l'aide de la tâche Importer des données? Je n'ai pas réussi à trouver un moyen de le faire.identity
et lesforeign key
références sont supprimées dans la base de données de destination, une solution?Cela devrait fonctionner:
Il ne copiera pas les contraintes, les valeurs par défaut ou les index. La table créée ne sera pas d'index cluster.
Vous pouvez également:
Si votre table de destination existe et est vide.
la source
INSERT INTO...
) a fonctionné pour moi dans Oracle.Si c'est une seule table, alors tout ce que vous devez faire est
Une chose que vous devrez considérer est d'autres mises à jour telles que la migration d'autres objets à l'avenir. Notez que vos tables source et destination n'ont pas le même nom. Cela signifie que vous devrez également apporter des modifications si vous dépendez d'objets tels que des vues, des procédures stockées et autres.
Avec un ou plusieurs objets, vous pouvez aller manuellement sans aucun problème. Cependant, lorsqu'il y a plus que quelques mises à jour, les outils de comparaison tiers sont très utiles. En ce moment, j'utilise ApexSQL Diff pour les migrations de schéma, mais vous ne pouvez pas vous tromper avec un autre outil.
la source
Créez un script
create table
dans le studio de gestion, exécutez ce script dans la barre pour créer la table. (Table de clic droit dans l'explorateur d'objets, table de script as, create to ...)INSERT bar.[schema].table SELECT * FROM foo.[schema].table
la source
SET IDENTITY_INSERT TblName ON
dans ce cas.Vous pouvez également utiliser l' Assistant Générer des scripts SQL Server pour guider la création de scripts SQL pouvant effectuer les opérations suivantes:
Bon exemple de flux de travail pour SQL Server 2008 avec des captures d'écran illustrées ici .
la source
Vous pouvez suivre cette voie: (un exemple général)
De plus, si vous devez également générer les noms de colonnes pour insérer une clause d'insertion, utilisez:
Copiez le résultat et collez-le dans la fenêtre de requête pour représenter les noms de vos colonnes de table et même cela exclura également la colonne d'identité:
N'oubliez pas que le script pour copier les lignes fonctionnera si les bases de données appartiennent au même emplacement.
Vous pouvez l'essayer.
Le nom du serveur est facultatif si les deux bases de données se trouvent sur le même serveur.
la source
S'il existe une table existante et que nous voulons copier uniquement les données, nous pouvons essayer cette requête.
insérer dans Destination_Existing_Tbl sélectionner col1, col2 FROM Source_Tbl
la source
Copier les données
la source