Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/10/2011, 23h55   #1
Candidat au titre de Membre du Club
 
Homme Mohamed Chaala
Consultant ERP
Inscription : décembre 2008
Messages : 46
Détails du profil
Informations personnelles :
Nom : Homme Mohamed Chaala
Localisation : Algérie

Informations professionnelles :
Activité : Consultant ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2008
Messages : 46
Points : 13
Points : 13
Par défaut inserer les données d'une base de données dans une autres?

bonjour
nous avons une base de données vide avec x tables,comment remplir cette base avec les données d'une autre table contenant les même x tables de la 1ere + y autres tables ( base 1 = X table; base 2 = X+Y )?
enstein8 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 09h22   #2
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Il suffit de faire une requête INSERT pour chaque table existante et une requête SELECT ... INTO pour les tables qui n'existent pas.

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 09h44   #3
Candidat au titre de Membre du Club
 
Homme Mohamed Chaala
Consultant ERP
Inscription : décembre 2008
Messages : 46
Détails du profil
Informations personnelles :
Nom : Homme Mohamed Chaala
Localisation : Algérie

Informations professionnelles :
Activité : Consultant ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2008
Messages : 46
Points : 13
Points : 13
oui,mais je ne veux pas inserer table par table je veux quelques chose de la forme
Code :
INSERT INTO .........WHERE ..... (SELECT TABLE FROM base 1 ) IN (SELECT TABLE FROM base 2)
enstein8 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 09h47   #4
Membre Expert
 
Homme Sylvain Devidal
Chef de projets Générix
Inscription : février 2010
Messages : 1 062
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Devidal
Âge : 33
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Chef de projets Générix
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2010
Messages : 1 062
Points : 1 515
Points : 1 515
Un WHERE dans un INSERT ?
StringBuilder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 10h12   #5
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Pour info, la syntaxe d'un INSERT avec requête imbriquée est la suivante

INSERT INTO ...
SELECT ...
FROM ...
WHERE ...

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 19h11   #6
Modérateur
 
Homme
Administrateur de base de données
Inscription : août 2007
Messages : 1 159
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : août 2007
Messages : 1 159
Points : 1 611
Points : 1 611
Citation:
Envoyé par enstein8 Voir le message
bonjour
nous avons une base de données vide avec x tables,comment remplir cette base avec les données d'une autre table contenant les même x tables de la 1ere + y autres tables ( base 1 = X table; base 2 = X+Y )?
Si le mapping des tables est 1 à 1, pourquoi ne pas prendre un backup de votre base de données source et la recréer avec le nom de la db cible que vous souhaitez ?
Vous pouvez apres dropper les tables inutiles.
Ca aura pour avantage de vous recréer toutes les structures sous-jacentes en meme temps (index, triggers, roles de securité...) et aussi de vous éviter de devoir vous soucier de l'ordre de chargement des donnéees (pensez au foreign keys...)

En gros:
Backup base 2
Restore backup base 2 as base 1
drop Y tables from base 1
Ptit_Dje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 11h37   #7
Candidat au titre de Membre du Club
 
Homme Mohamed Chaala
Consultant ERP
Inscription : décembre 2008
Messages : 46
Détails du profil
Informations personnelles :
Nom : Homme Mohamed Chaala
Localisation : Algérie

Informations professionnelles :
Activité : Consultant ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2008
Messages : 46
Points : 13
Points : 13
oui mais le nombre de table à droper dépasse 300?!
enstein8 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 11h50   #8
Membre Expert
 
Homme Sylvain Devidal
Chef de projets Générix
Inscription : février 2010
Messages : 1 062
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Devidal
Âge : 33
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Chef de projets Générix
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2010
Messages : 1 062
Points : 1 515
Points : 1 515
Bah tu fais un script PL qui va lire les tables système pour retrouver la liste des tables et fait des execute immediate.
StringBuilder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 13h33   #9
Modérateur
 
Homme
Administrateur de base de données
Inscription : août 2007
Messages : 1 159
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : août 2007
Messages : 1 159
Points : 1 611
Points : 1 611
Citation:
Envoyé par enstein8 Voir le message
oui mais le nombre de table à droper dépasse 300?!
Quel est le nombre de table a charger ?

Ce qui est propose est une approche differente, apres libre a toi de prendre la decision sur la methode. Choisis la plus effective en prennant la globalites des approches en considreation (implementation, tests...).

Qui plus est, vous pouvez selectionner dans l'interface graphique (object explorer detail) les tables a dropper (utilisez CTRL et SHIFT pour faire des selections multiples), ce qui vous evite de devoir manipuler du code TSQL.
Ptit_Dje est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h54.


 
 
 
 
Partenaires

Hébergement Web