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 :

passer un nom de champs en paramètre de procédure stockée


Sujet :

MS SQL Server

  1. #1
    Membre habitué Avatar de dor_boucle
    Inscrit en
    Juin 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 147
    Points : 136
    Points
    136
    Par défaut passer un nom de champs en paramètre de procédure stockée
    Bonjour, mon soucis aujourd'hui, c'est que j'ai des stats à faire sur des colonnes d'une table. Rien de bien sorcier me diriez-vous.
    Sauf que ma table fait 162 colonnes, et que je me suis dis que si je faisais une procédure que j'appelerai au besoin, ca serait drolement pratique.
    Donc mon idée serait de faire un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CREATE PROCEDURE [NbValeurs]
    	@nomChamp  nvarchar(50),
    	@valeur nvarchar(10)
    AS
    SELECT COUNT(MA_TABLE.[@nomChamp])
    FROM MA_TABLE
    WHERE MA_TABLE.[@nomChamp]=@valeur
    GO
    et forcément, @nomChamp est interprété comme du texte et non pas comme un nom de colonne...
    Y aurait il une astuce, ou c'est pas possible ??
    Merci et bonne journée !
    J'ai l'impression d'engager un combat sans précédent avec la nature. Je vais bien, le moral est bon, je poursuis le vol. (Youri Gagarine)

  2. #2
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Points : 1 281
    Points
    1 281
    Par défaut
    oui en faisant une requete dynamique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    CREATE PROCEDURE [NbValeurs] 
       @nomChamp  nvarchar(50), 
       @valeur nvarchar(10) 
    AS 
     
    DECLARE @QUERY as varchar(2000)
     
    SET @QUERY = 'SELECT COUNT(MA_TABLE.' + @nomChamp + ') 
    FROM MA_TABLE 
    WHERE MA_TABLE.' + @nomChamp + '=' + @valeur 
     
    EXEC(@QUERY)
    GO
    j'suis vert !

  3. #3
    Membre habitué Avatar de dor_boucle
    Inscrit en
    Juin 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 147
    Points : 136
    Points
    136
    Par défaut
    Impécable !!
    Merci beaucoup !!
    J'ai un peu honte car j'aurai au moins pu y penser toute seule...
    J'ai l'impression d'engager un combat sans précédent avec la nature. Je vais bien, le moral est bon, je poursuis le vol. (Youri Gagarine)

  4. #4
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 154
    Points : 110
    Points
    110
    Par défaut
    Bonjour,

    Merci pour cette astuce mais comment insérer les résultats d'un 'exec' dans une table temporaire ?

    Je ne trouve pas la synthaxe exacte

    Merci


    Portekoi

  5. #5
    Membre habitué
    Inscrit en
    Mars 2004
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 126
    Points : 151
    Points
    151
    Par défaut
    Salut.

    Par rapport aux colonnes variables il serait interressant de voir ce post.
    J'ai déjà repondu à ta dernière question dans un autre thread que tu as posté.

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

Discussions similaires

  1. passer le nom de table en paramètre avec iReport
    Par imanoual dans le forum iReport
    Réponses: 12
    Dernier message: 27/03/2012, 20h49
  2. Passer un nom de table en paramètre.
    Par ygrim dans le forum Développement
    Réponses: 2
    Dernier message: 05/08/2008, 15h01
  3. Passer un nom de contrôle en paramètre
    Par Peanut dans le forum Access
    Réponses: 2
    Dernier message: 05/12/2006, 17h57
  4. passer un nom d'USER en paramètre
    Par enamresu dans le forum Oracle
    Réponses: 2
    Dernier message: 13/06/2006, 10h43
  5. Passer le nom de colonne en paramètre d'une procédure stocké
    Par theartist dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 04/01/2005, 15h39

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