IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

migration entre 2 bases de donnees SQL-Server


Sujet :

MS SQL Server

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Par défaut migration entre 2 bases de donnees SQL-Server
    bonjour,
    j'ai une ancienne base de donnée qui contient des milliers de champs. je veux passer des données de quelques tables de cette base vers une nouvelle base.
    Les 2 bases ne contiennent pas les memes structures de tables.
    Je pense que je dois ecrire un script, mais je ne connais pas comment le faire.
    Y a t'il qq'un qui peut m'aider SVP ??

    Je suis en attente de vos commentaires.

    Merci.

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Si les deux bases de données sont dans la même instance SQL Server, c'est à priori assez simple :
    - Si vous vous placez dans le contexte de la base de données source pour copier les données vers la base de données cible, vous devez écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO maBDCible.dbo.uneTable
    (
    	colonnesDe_uneTable
    )
    SELECT	desColonnes
    FROM	dbo.maTable
    Vous pouvez bien sûr rajouter une clause WHERE au SELECT qui vous permette de filter les données, et des jointures pour vérifier les dépendances.

    Sans plus de détails sur les problèmes que vous rencontrez, il est difficile de vous aider plus.

    @++

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Par défaut Re
    Les 2 bases de donnees sont dans la meme connexion SQL-Server.
    par exemple, j'ai dans l'ancienne base (OldBD)une table client qui contient tout ses donnees mais dans la nouvelle base (NewBD) j'ai 2 tables pour le client ( une table client qui contient differents donnes et autre table adresseClient qui contient plusieurs adresses du client).
    Je dois faire une procedure stockée, ou dois je programmer avec mon langage de programmation(c#) ??

    HELP, please ?

    Merci

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Je dois faire une procedure stockée, ou dois je programmer avec mon langage de programmation(c#) ??
    Ni l'un, ni l'autre.
    Le premier est plutôt destiné à des appels répétés, et le second à une utilisation spécifique (chargement de fichiers, ...).
    Retenez que les procédures stockées d'assembly ne sont pas un remplaçant à T-SQL, mais un complément à ce dernier.

    Je suppose donc que vous partez d'une table du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE client
    (
    	idClient
    	, nomClient
    	, Adresse_Domicile
    	, Adresse_Facturation
    	, Adresse_Livraison
    )
    Et que vous passez, dans votre nouvelle BD, à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    CREATE TABLE client
    (
    	id_client
    	, nom_client
    )
     
    CREATE TABLE client_adresse_type
    (
    	id_client_adresse_type
    	, client_adresse_type
    )
     
    CREATE TABLE client_adresse
    (
    	id_client
    	, id_client_adresse_type
    	, client_adresse
    )
    Vous me pardonnerez, je n'ai pas mis les types et les contraintes.

    Vous feriez donc cela en deux temps :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    INSERT	maBaseCible.dbo.client
    (
    	idClient
    	, nomClient
    )
    SELECT	idClient
    	, nomClient
    FROM	maBaseSource.dbo.client
    Puis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    INSERT	maBaseCible.dbo.client_adresse
    (
    	id_client
    	, id_client_adresse_type
    	, client_adresse
    )
    	SELECT		C.id_client
    			, CAT.id_client_adresse_type
    			, C.Adresse_Domicile
    	FROM		maBaseSource.dbo.client AS C
    	CROSS JOIN	maBaseCible.dbo.client_adresse_type AS CAT
    	WHERE		CAT.client_adresse_type = 'domicile'
    UNION ALL
    	SELECT		C.id_client
    			, CAT.id_client_adresse_type
    			, C.Adresse_Facturation
    	FROM		maBaseSource.dbo.client AS C
    	CROSS JOIN	maBaseCible.dbo.client_adresse_type AS CAT
    	WHERE		CAT.client_adresse_type = 'facturation'
    UNION ALL
    	SELECT		C.id_client
    			, CAT.id_client_adresse_type
    			, C.Adresse_Livraison
    	FROM		maBaseSource.dbo.client AS C
    	CROSS JOIN	maBaseCible.dbo.client_adresse_type AS CAT
    	WHERE		CAT.client_adresse_type = 'livraison'
    @++

Discussions similaires

  1. Probleme Acces Base de Donnees SQL Server 2005
    Par rar77 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 23/11/2007, 10h40
  2. Migration d'une base de donnée Sql Server(assez pressé)
    Par bene86 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 12/10/2007, 13h25
  3. relier 2 base de donnees sql server 20000
    Par djig dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 09/11/2006, 12h46
  4. [C# 2.0] Comment se connecter à une base de données SQL Server ?
    Par prince_antonio dans le forum Accès aux données
    Réponses: 5
    Dernier message: 14/07/2006, 11h44
  5. Migration d'une base mySQL vers SQL Server
    Par jazziroquai dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 16/03/2006, 08h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo