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 structure de table


Sujet :

MS SQL Server

  1. #1
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 508
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 508
    Par défaut copie de structure de table
    Bonjour,
    Je dois faire un script TSQL permettant de copier la structure d'une table d'une base à une autre. Jusqu'a présent j'ai réussi à recréer dynamiquement la requête permettant de faire une nouvelle base. Pour cela je cherche les informations sur les tables systems. La chaine généré est une syntaxe de création de table.
    - Problème c'est que les tables peuvent avoir jusqu'a 600 champs. Me demandez pas mais c'est ainsi. De là, ma variable varchar(8000) ne peut contenir plus. Donc j'ai qu'un bout de la chaine.
    Existe t'il une fonction permettant simplement de copier la structure d'une table à une autre en passant en parametre le nom de la table , la base source et la base de destination.
    Merci

  2. #2
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

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

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    tu créé une "fausse table"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select * into
    serveur.base.dbo.table_destination
    from 
    serveur.base.dbo.table_depart
    where 1=0

  3. #3
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

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

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    ta table sera créée sans les données

  4. #4
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 508
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 508
    Par défaut
    Merci beaucoup, c'est exactement ce que je voulais. Les données seront copié par la suite via un DTS.
    Si je comprend bien le SELECT * INTO xxx FROM yyy fait une copie de structure entre source deux tables. ?

  5. #5
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

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

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    pas tout a fait car dans

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT * INTO
    serveur.base.dbo.table_destination
    FROM 
    serveur.base.dbo.table_depart
    WHERE 1=0
    si tu enlèves le where (ou que tu mets une condition qui renvoie des données)
    les données aussi seront copiées

  6. #6
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 508
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 508
    Par défaut
    Merci pour ses informations

  7. #7
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Bonjour,

    Attention, avec cette méthode les index, certaines contraintes ne sont pas copiées.
    Tu peux utiliser un outil de synchronisation comme SQL Examiner, ou du code de génération de script comme mes scripts Ruby :
    http://www.babaluga.org/doku.php/pro...on_python-ruby

Discussions similaires

  1. requete à 2 dimensions / structure de table dynamique
    Par fourchette dans le forum Requêtes
    Réponses: 2
    Dernier message: 31/08/2006, 10h02
  2. recuperer la structure des tables
    Par mick84m dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/04/2005, 10h46
  3. Avantage Désavantage structuration de Table SQL
    Par jflebegue dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 01/12/2004, 18h40
  4. Dupliquer une structure de table
    Par deviltaz dans le forum Access
    Réponses: 4
    Dernier message: 13/10/2004, 13h41
  5. [DB2]Structure de table
    Par Morphee dans le forum DB2
    Réponses: 12
    Dernier message: 23/10/2003, 15h53

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