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 :

passage parametre table pour curseur


Sujet :

MS SQL Server

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Points : 166
    Points
    166
    Par défaut passage parametre table pour curseur
    Bonjour,

    J'ai une Procedure stockée dans laquelle je reçois 2 parametres, je voudrais utiliser ces parametres pour faire un select sur une table (une exemple vaut mieux je pense) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //les parametres passés à ma proc
    @i int, 
    @j int 
     
    (...)
    DECLARE MyCursor2 CURSOR
    			FOR
    SELECT * FROM Matable_@i_@j
     
    (...)
    Pour selectionner dans la table Matable_1_3 si je passe i= 1 et j=3

    Voila cela ne fonctionne pas

    Merci de votre aide !

  2. #2
    Membre actif
    Inscrit en
    Février 2009
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 224
    Points : 269
    Points
    269
    Par défaut
    Bonjour,
    Non il n'est pas possible de construire ainsi dynamiquement une requête.
    La construction dynbamique de requête nécessaite d'utiliser sp_executesql.
    Dans votre cas c'est tout votre lot Transact SQL qui doit être construit de façon dynamique.
    A mon avis il est sans doute préféreable de créer une function qui retourne un ensemble de valeurs (Multistatement table valued functions)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Points : 166
    Points
    166
    Par défaut
    Ok, je vois mais j'ai trouvé une façon détournée de faire ce que je veux :

    Code librement inspiré de ici pour ceux que ca interresse!

    ++

  4. #4
    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 : 42
    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
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Hé oui, sp_executeSQL, étant tout de même à utiliser avec parcimonie, a beaucoup d'avantages par rapport à EXEC(@SQL)

    @++

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/02/2012, 04h18
  2. [PHP 5.1] Syntaxe pour passage parametre via une url
    Par chkemp dans le forum Langage
    Réponses: 7
    Dernier message: 09/12/2009, 18h57
  3. Réponses: 2
    Dernier message: 10/05/2007, 14h41
  4. Nom de Champ dans une table pour utiliser For/Next
    Par Mulele dans le forum Access
    Réponses: 6
    Dernier message: 30/10/2004, 13h28
  5. Réponses: 2
    Dernier message: 15/09/2004, 18h17

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