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 )?
Version imprimable
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 )?
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 +
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)
Un WHERE dans un INSERT ? 8O
Pour info, la syntaxe d'un INSERT avec requête imbriquée est la suivante
INSERT INTO ...
SELECT ...
FROM ...
WHERE ...
A +
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
oui mais le nombre de table à droper dépasse 300?!
Bah tu fais un script PL qui va lire les tables système pour retrouver la liste des tables et fait des execute immediate.
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.