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

Développement SQL Server Discussion :

Procedure stockée pour une recherche multicritère


Sujet :

Développement SQL Server

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2012
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Procedure stockée pour une recherche multicritère
    Bonjour, je débute avec sql server et les procedures stockée, je dois faire une recherche multicritère voilà mon code qui marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE procedure rechM (@nb_expr int,@annee_dipl char(4))
    as begin
    CREATE VIEW allCV
    AS  select email, langue_CV from Candidat can, CV cv where can.email=cv.CandidatID group by email,langue_CV 
    if (@nb_expr is not NULL) begin
    	alter view allCV as ((select email, langue_CV from allCV) intersect (select email,langue_CV from v_NbrExpr where (nbr_exp=@nb_expr)) GO end
     
    	if (@annee_dipl is not NULL) begin 
    	alter view allCV as ((select email, langue_CV from allCV) intersect (select email,langue_CV from v_dern_dip where dern_dip=@annee_dipl)) GO end			
    end
    je sais que c'est interdit d'utiliser create view et alter view à l'intérieur d'une procedure mais j'aimerai bien que vous m'aidiez pour que ça marche

  2. #2
    Invité
    Invité(e)
    Par défaut
    Euh... Ça ne marche pas ? Mais encore ?

    En tout cas, tu ferais mieux de faire une table-valued functions au lieu de faire de la génération automatique d'objet, ça sera plus consistant et gérable...
    http://msdn.microsoft.com/en-us/library/ms186755.aspx

  3. #3
    Membre éclairé 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
    Points : 769
    Points
    769
    Par défaut
    Bonjour,

    D'après la msdn, http://msdn.microsoft.com/en-us/libr...=sql.105).aspx, "A table-valued user-defined function can be used where table or view expressions are allowed in Transact-SQL queries".

    S'il n'est pas possible de faire un CREATE VIEW dans une procédure, on ne devrait pas pouvoir non plus faire de table_valued... Mais je peux me tromper...

    Cordialement,

    Arkhena

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Arkhena Voir le message
    D'après la msdn, http://msdn.microsoft.com/en-us/libr...=sql.105).aspx, "A table-valued user-defined function can be used where table or view expressions are allowed in Transact-SQL queries".
    S'il n'est pas possible de faire un CREATE VIEW dans une procédure, on ne devrait pas pouvoir non plus faire de table_valued... Mais je peux me tromper...
    Attention, je n'ai pas été complètement explicite.
    Je ne dis pas de créer une vue dans une table-valued function, bien au contraire (la création dynamique d'objet est toujours la porte à des galères à venir) mais plutôt d'employer les données de retour de cette fonction comme une vue, puisque qu'ici on cherche en retour un objet dépendant des valeurs passées en paramètre - ce que fait plus simplement une table-valued function.
    Ai-je été plus clair ?

  5. #5
    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 : 43
    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,

    Pourquoi ne pas créer autant de vues que nécessaire, et faire que la procédure stockée interroge l'une de des vues suivant le(s) paramètre(s) d'entrée ?

    @++

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par elsuket Voir le message
    Pourquoi ne pas créer autant de vues que nécessaire, et faire que la procédure stockée interroge l'une de des vues suivant le(s) paramètre(s) d'entrée ?
    Vu l'apparente simplicité de la demande initiale, je ferais ça simple avec le moins d'objets liés à maintenir mais j'utiliserais ton idée si c'était plus complexe.
    Mais bon, c'est plus une question de goût ou de couleur...

Discussions similaires

  1. trigger ou procedure stockée pour remplir une table
    Par khalid76 dans le forum Développement
    Réponses: 3
    Dernier message: 04/10/2012, 14h10
  2. Réponses: 6
    Dernier message: 11/08/2010, 15h50
  3. [MySQL] Construction de la condition pour une recherche multicritères
    Par jmtrivia dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 03/05/2009, 11h30
  4. Appels de procedures stockées dans une proc stockée ?
    Par Nadaa dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 17/07/2008, 10h32
  5. Réponses: 2
    Dernier message: 20/04/2006, 14h33

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