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 :

Variable de table


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Par défaut Variable de table
    Bonjour,

    Je suis en ce moment sur le développement d'un script pour SQL Server et je bloque depuis plusieurs jour sur un problème qui est le suivant.

    Dans un premier temps dans mon script, je parcours par l'intermédiaire des curseurs tout les noms de table présent dans la base de donnée à l'aide de la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT so.name,so.id 
    FROM sysobjects so 
    WHERE so.xtype = 'U'
    ORBER BY so.name
    Le nom de table est ensuite stocké dans une variable que j'ai nommée @Table.

    C'est la qu'intervient mon problème, car je cherche ensuite à me resservir de cette variable en exécutant une requête de type
    Le problème est qu'il n'a pas l'air d'interpréter la variable comme une table.
    J'ai essayer de résoudre le problème sous divers angle mais pas moyen je n'ai pas réussi à trouver la solution.

    J'espère que quelqu'un sera m'aider. Merci d'avance.

    Bonne journée

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Japon

    Informations forums :
    Inscription : Novembre 2007
    Messages : 125
    Par défaut
    Bonjour,

    juste pour info ce que tu essaye de faire sera dispo dans la version 2008 de SQL,
    sinon regarde auprès de la stored procedure "sp_executesql"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    exec sp_executesql " select * from "+@matable
    bàt.

  3. #3
    Membre expérimenté Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Par défaut
    Merci mikaeru pour ta réponse.

    Sinon par rapport à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec sp_executesql " select * from "+@matable
    En faite je récupère une valeur en fesant un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET @Info = (SELECT @Colone FROM @Table WHERE @Colone_Primaire in (SELECT TOP @i @Colone_Primaire FROM @Table) and @Colone_Primaire not in (SELECT TOP @j @Colone_Primaire FROM @Table))
    Donc le exec ne convient pas par rapport à ce que je fait après


    Sinon c'est cool d'y avoir pensé pour la version 2008, mais sa ne résout pas mon problème non plus car mon script doit en gros générer une requête qui va permettre d'exporter toute les données d'une base vers une autre (plus précisément d'une base SQL Server 2005 vers 2000)

    Vous mdirez, "mais ya des logiciels qui font déjà sa".
    Oui en effet mais mon patron préfère que je avoir le script en main au cas ou il faudrait le modifier^^

    A la limite il y a également une autre solution, trouver un script qui permet de faire sa mais personnellement je n'en ai pas trouvé

    Jviens d'essayer en déclarant préalablement la table mais sa ne marche pas non plus -_-

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Par défaut
    Salut.
    Tu peux faire comme cela :
    tu construis une table tempo pour récupérer tes résultats.
    ensuite un varchar qui va contenir ta requete, et tu termines par un execute :

    declare @my_request varchar(2000)

    create #info (col_name type)

    set @my_request = 'insert #info SELECT '+@Colone+' FROM '+@TABLE+' WHERE ...' etc...

    execute(@my_request)
    select * from #info

Discussions similaires

  1. AddIn avec SAS : récupérer noms des variables de table
    Par pavinho dans le forum Outils BI
    Réponses: 0
    Dernier message: 27/07/2009, 16h41
  2. Lecture variable objet table - UPDATE FROM
    Par MAndris dans le forum SSIS
    Réponses: 3
    Dernier message: 27/03/2009, 15h10
  3. Condition if variable in table
    Par fardon57 dans le forum PL/SQL
    Réponses: 8
    Dernier message: 02/03/2009, 15h41
  4. création nouvelle variable dans table existante
    Par meuah dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 16/05/2008, 10h00
  5. [MySQL] Variable et table de données
    Par flamel dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 02/04/2008, 10h34

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