{SQL Server} copier des données d'une BD à une aut

Fermé
houria - 8 sept. 2009 à 12:44
 houria - 10 sept. 2009 à 14:49
Bonjour,
le problème qu'on a saisi les données dans deux BD de meme structure, maintenant on doit les mettre sur une seulle BD, comment le faire? aidez nous SVP.
Merci

4 réponses

moderno31 Messages postés 870 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 92
8 sept. 2009 à 15:00
Hello
Alors vous faites un joli select dans chaque table concernée par la fusion pour observer le contexte des données à regrouper en une table (utile pour savoir quelle clé prendre afin de pas rapatrier des données non désirée).
Ignorez s'il faut tout copier.
Sous sql server il faut dupliquer ls structure de la table de départ (table_depart) vers table_depart_duppliquée.
Une fois la table ok et vide, vous faites ceci
INSERT INTO table_depart_duppliquée (champ1, champ2, champ3, ....) SELECT champ1, champ2, champ3, ....) from table_depart WHERE (éventuellement)
0
les structures des deux BD sont toutes identiques, mais elles contiennent des données differentes je doit ajouter les données d'une BD à l'autre, on a le num de clé 1 dans les deux BD, il faut que la clé commence par le dernier num dans l'autre BD, et il n'est pas autoriser de le faire sur la 1iere bd avant le copier/coller.
je suis débutante et désolé pour mon orthographe.
je vous remercie.
0
moderno31 Messages postés 870 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 92
8 sept. 2009 à 17:08
ben, tu fais un select max(champ_id) from table pour savoir à quel numéro tu commences.
Par sql server c'est un peu compliqué.
En fait il te faut faire un une table temporaire avec les données dedans
Le premier champ doit etre un auto inc obtenu avec identity(1,1) cherche la syntaxe je n'ai pas de fichier sous la main de ce type pour te répondre. Il faudra régler ton paramètre de idendity au max(champ_id) + 1 pour qu'il commence à créer des lignes à partir de là.
La table tempo doit ressembler à un truc comme ça #temp(id_ligne,champ1,champ2,...)
Une fois que tu as ça tu peux faire
INSERT INTO table_depart_duppliquée (champ1, champ2, champ3, ....) SELECT champ1, champ2, champ3, ....) from table_depart WHERE (éventuellement)

En fait tout à l'heure j'avais pas pensé que tu en aurais besoin (étapge identity).

https://docs.microsoft.com/en-us/sql/t-sql/statements/create-table-transact-sql-identity-property?redirectedfrom=MSDN&view=sql-server-ver15
0
bonjour,
enfin j'ai arrivé à copier les enregistrement de la table principale mais il reste les autres tables liées à celle c, pour moi c'est dificile de créer des requetes ou des lignee de code et aussi pour ne pas perdre la BD, alors je cherche un moyen plus simple par exemple de changer les propriétés de la clé, l'importation, l'exportation ce que n'est pas permi avec SQL Server 2005.
Merci beaucoup pour ton aide.
0
moderno31 Messages postés 870 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 92
10 sept. 2009 à 14:37
ah,
on tombe dans un détail que je maitrise pas. Parce que je n'ai pas ton sujet sous les yeux.
J'espère que tu trouveras l'issue de ce souci
0
moderno31 Messages postés 870 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 92
10 sept. 2009 à 14:37
ah,
on tombe dans un détail que je maitrise pas. Parce que je n'ai pas ton sujet sous les yeux.
J'espère que tu trouveras l'issue de ce souci
0
Merci.
0