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 :

Création table temporaire sur base d'une autre (table) [2012]


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 218
    Par défaut Création table temporaire sur base d'une autre (table)
    Bonjour à tous,

    Je souhaiterai savoir, si il est possible de faire une requête de type CREATE TABLE, qui me permettrai de créer un table temporaire à l'identique d'une table existent (forcement). Et si oui, comment ?

    J'ai déjà essayez du code du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE TBLTEMP LIKE TBL
    OU
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE TBLTEMP AS SELECT * FROM TBL
    le tout avec des dérivés, en ajoutant des () à différents endroit.

    D'avance merci de votre aide.


  2. #2
    Membre émérite Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Par défaut
    Bonjour,

    Pour créer une table temporaire locale, il faut préfixer son nom d'un dièse.
    Pour une table temporaire globale, il faut préfixer son nom de deux dièses.

    Soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE TABLE #maTable;
    CREATE TABLE ##maTable
    Et la msdn qui va bien : http://msdn.microsoft.com/fr-fr/libr...=sql.105).aspx

    Cordialement,

    Arkhena

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 218
    Par défaut
    Bonjour,

    Merci pour votre réponse, mais mon "problème" n'est pas vraiment de créer la table temporaire, mais plutôt de la créer à l'identique sur base d'une autre sans devoir obligatoirement déclarer tous les éléments.

    En résumé, est-il possible avec une "requête SQL" de créer une table à l'identique d'une autre (quel soit temporaire ou pas, ce n'est pas vraiment l'important). Mais je souhaiterai avoir la même structure (du moins des champs), sans devoir les retaper.

    Encore merci.


  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour,

    La syntaxe est celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT  *
    INTO #LaTableTemporaire
    FROM LaTableSource
    si vous voulez juste la structure sans les données, ajoutez un TOP(0) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT TOP(0) *
    INTO #LaTableTemporaire
    FROM LaTableSource

    Attention, cela ne crée pas les éventuelles contraintes présentes sur la table source

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 218
    Par défaut
    Bonjour,

    Je pense m'être un peu mal exprimé dans mes demandes précédentes.

    En réalité, la nouvelle table que je veux créer me servira de table temporaire, mais je souhaite qu'elle fasse partie de ma DB, au même niveau et au même titre que ma table d'origine, comme si je l'avais créer avec un create table, ...

    Encore mille excuses.

    Et merci de votre aide.


  6. #6
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    alors enlevez le dièse de la requête que je vous ai proposée

  7. #7
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Dans ce cas il faut que tu crées une table classique.
    EDIT : doublon avec le post précédent de aieeeuuuuu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT  *
    INTO LaTableTemporaire
    FROM LaTableSource
    Celle-ci sera au même niveau que ta table d'origine. La table nouvellement créée te servira de table de travail. Après rien ne t'empêche de créer un schéma destiné à cela dans ta base si tu veux éviter de mélanger tes tables de production et tes tables de travail par exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT  *
    INTO monschematemporaire.LaTableTemporaire
    FROM LaTableSource
    ++

  8. #8
    Membre émérite Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Par défaut
    Oups la blonde!

    Comme c'est écrit plus haut, c'est bien SELECT * INTO nouvelleTable FROM nomTable qu'il faut utiliser.

    La doc ici : http://msdn.microsoft.com/en-us/library/ms188029.aspx

    Cordialement,

    Arkhena

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/04/2011, 12h08
  2. Réponses: 2
    Dernier message: 01/04/2008, 16h30
  3. Remplir listbox sur base d'une autre listbox
    Par jujujulien dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/05/2007, 08h46
  4. Réponses: 6
    Dernier message: 27/08/2006, 18h57
  5. Réponses: 3
    Dernier message: 18/07/2006, 17h37

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