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 :

copie de base, mais


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Octobre 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 11
    Par défaut copie de base, mais
    Bonjour,

    Je voudrais copier la structure d'une base vers un autre serveur sans les données.
    Puis pour quelques tables les copier, données comprises, dans la base nouvellement transféré.

    Je suis un débutant de chez débutant donc soyez très clair svp.

    Je suis sur Ms SQL server 2005.
    J'ai trouvé un topic pour copier une structure mais on parle de scritp. Est-on obligé de passer par là?

    Merci.

  2. #2
    Membre émérite
    Avatar de Reskibil
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Par défaut
    A priori c'est ce qu'il y a de plus simple surtout que c'est SQL Serveur qui les génère. Par contre ,ca ne prend que la structure, pas les données.
    Sinon il y a le backup/restore mais je ne maitrise pas très bien (jamais eu besoin de l'utiliser à vrai dire) et j'ai eu quelques problèmes avec le restore.

    Pour les scripts, click droit sur la base, puis tasks/generate scripts et tu choisis les options du script.

    Après il y a peut être d'autres possibilités (miroir ?) mais là je connais pas du tout.

  3. #3
    Rédactrice

    Avatar de Fleur-Anne.Blain
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 636
    Par défaut
    SQL publisher wizard fait tout ce que tu veux pour toi, sous forme de script généré avec ou sans les données.

    +avec sqlpubwiz en mot clé
    la culture c'est comme la confiture moins on en a plus on l'étale.

    Mes tutos

  4. #4
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 228
    Billets dans le blog
    25
    Par défaut
    ou via génération de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select into Base2..table1 from Base1..table1 where 1=2
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  5. #5
    Invité
    Invité(e)
    Par défaut
    Si vous êtes débutant et ne voulez pas vous perdre dans le Transact-SQL (même s'il faudra y venir un jour...), dans SQL Server Management Studio:

    - clic droit sur la base à copier
    - dans Tasks / Generate scripts...
    - suivre l'assistant en choisissant les objets à scripter (tables, users...)
    - un script est généré

    Créer la nouvelle base et exécuter le script ci-dessus dedans. Les objets y seront recréé.

  6. #6
    Rédactrice

    Avatar de Fleur-Anne.Blain
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 636
    Par défaut
    Citation Envoyé par kuzco Voir le message
    Si vous êtes débutant et ne voulez pas vous perdre dans le Transact-SQL (même s'il faudra y venir un jour...), dans SQL Server Management Studio:

    - clic droit sur la base à copier
    - dans Tasks / Generate scripts...
    - suivre l'assistant en choisissant les objets à scripter (tables, users...)
    - un script est généré

    Créer la nouvelle base et exécuter le script ci-dessus dedans. Les objets y seront recréé.
    ca ne prend pas les données...
    la culture c'est comme la confiture moins on en a plus on l'étale.

    Mes tutos

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Lancyo Voir le message
    Je voudrais copier la structure d'une base vers un autre serveur sans les données.
    Effectivement, mais Lancyo ne veut que la structure, pas les données.

  8. #8
    Membre habitué
    Inscrit en
    Octobre 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 11
    Par défaut Feebback 1 et demande d'info
    Merci,

    Pour résumer.

    1 étape: (merci kuzco)

    Pour copier la structure d'une base dans une autre sans les données.

    dans SQL Server Management Studio:

    - clic droit sur la base à copier
    - dans Tasks / Generate scripts...
    - suivre l'assistant en choisissant les objets à scripter (tables, users...)
    - un script est généré

    Créer la nouvelle base et exécuter le script ci-dessus dedans. Les objets y seront recréé.

    2 étape: (merci fadace)

    Pour copier quelques bases avec leurs données.

    SELECT INTO Base2..table1 FROM Base1..table1 WHERE 1=2

    Pour avancer.

    Est-ce que cette requete SQL marche si les 2 bases sont sur des serveurs différents.
    Si oui comment indique-t-on les serveurs dans la requete?

    Merci.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Non, pour la 2eme étape, la clause
    a pour valeur FAUX. Donc aucune donnée n'est copiée. Il faut modifier cette clause ou la supprimer pour copier les données.

    Les index ne seront pas copiés.

  10. #10
    Membre habitué
    Inscrit en
    Octobre 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 11
    Par défaut Feedback 2
    Bonsoir,

    L'étape 1 (copie de la base sans les données) s'est déroulée sans problème.

    L'étape 2 (copie de quelques tables avec les données) ne fonction pas.

    select * into Copie_Base1..LAST_SYNCHRO from Base1..LAST_SYNCHRO

    note : ne pas oublié l'étoile sinon c'est mort.

    Donne comme message d'erreur:

    There is already an object named 'LAST_SYNCHRO' in the database.

    Pour résumer

    Etape 1 ok.

    la bonne syntaxe pour l'étape 2 est :

    SELECT * INTO Base2..table1 FROM Base1..table1

    Pour ce qui est de l'erreur je la traiterai lundi.

    Bon week end.

  11. #11
    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,

    Attention : SELECT * INTO maTableCible FROM maTableSource crée maTableCible. Comme le nom des tables doît être unique dans une base de données, l'instruction échoue.

    En revanche INSERT INTO maTableCible SELECT * FROM maTableSource fonctionnera. Eventuellement ajouter une contrainte WHERE.

  12. #12
    Membre habitué
    Inscrit en
    Octobre 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 11
    Par défaut
    Bonjour,

    Merci elsuket.

    J'ai effectivement pensé à ca ce weekend.
    Ca marche sauf pour les tables avec une numérotation automatique.

    Message d'erreur:
    Msg 8101, Level 16, State 1, Line 1
    An explicit value for the identity column in table 'Copie_Osiris_NL.dbo.CONTRACT_TYPE_DEF' can only be specified when a column list is used and IDENTITY_INSERT is ON.

    Je travaille dessus, et je feedback.
    Si quelqu'un à une idée je suis également preneur.

    Cdt.

Discussions similaires

  1. requete copie de base
    Par majeb dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 16/08/2005, 18h25
  2. copy de nodes mais attribut en trop
    Par Triangle dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 15/06/2005, 18h30
  3. Copie de base
    Par ptidoudou02 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 03/05/2005, 14h39
  4. Probleme de de copie de base de données
    Par valentin4949 dans le forum Access
    Réponses: 3
    Dernier message: 01/11/2004, 16h54
  5. Problème Lors d'un copie de base
    Par 79Charles dans le forum Administration
    Réponses: 17
    Dernier message: 19/08/2004, 15h13

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