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 :

Procédure stockée avec variable en clause FROM


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 17
    Points : 14
    Points
    14
    Par défaut Procédure stockée avec variable en clause FROM
    Bonjour,

    Je suis sous SQL2000 et j'essaye vainement d'écrire une procédure stockée à laquelle je veux passer en variable la table de la clause FROM :

    Voila ma procédure simplifiée :

    /** procédure TEST1
    ** Essai de passage de la table source en variable
    */
    CREATE PROCEDURE TEST1
    @table_source varchar(50)
    AS
    SELECT * FROM [@table_source]
    GO

    SQL m'accepte la syntaxe.

    Et voilà comment je la teste dans l'analyseur de requête :

    use CLOVISPROD (c'est ma base)

    DECLARE @table_source varchar(50)

    set @table_source = "dbo.TBL_REGION"

    EXECUTE dbo.Test1 @table_source

    Et voilà le message d'erreur que j'ai :

    Serveur*: Msg 207, Niveau 16, État 3, Ligne 5
    'TBL_REGION' : nom de colonne incorrect.

    J'ai beau chercher partout, je vois pas comment substituer correctement ma variable !

    HELP, PLEASE

    Merci,

    Richard

  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
    ta variable est bien passée, c'est pas ca le pb, il faut que tu utilise une requete dynamique :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE PROCEDURE TEST1
    @table_source varchar(50)
    AS
    DECLARE @QUERY varchar(150)
    SET @QUERY = 'SELECT * FROM ' + @table_source
    EXEC (@QUERY)
    GO
    à la place du 'EXEC (@QUERY)' tu peux faire ca aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    EXECUTE sp_executesql @QUERY
    mais tu dois declarer ton @QUERY en nvarchar.

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 17
    Points : 14
    Points
    14
    Par défaut Ok
    Ok Hulk,

    C'est tout bon.

    Un grand merci !

    Richard

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/02/2015, 14h05
  2. Réponses: 26
    Dernier message: 24/06/2009, 10h32
  3. procédure avec variable dans le from
    Par cedlensois dans le forum Développement
    Réponses: 2
    Dernier message: 24/03/2009, 10h50
  4. Procédure stockée avec order by variable
    Par Le-Cortex dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/07/2007, 16h20
  5. Procédure stockée avec une variable "OUT"
    Par Cpas2latarte dans le forum SQL
    Réponses: 5
    Dernier message: 13/03/2007, 11h22

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