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 :

Procedure stockée et condition


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Par défaut Procedure stockée et condition
    Bonjour à tous ,

    Je souhaiterais savoir si il est possible créer une condition sur un paramètre d'entrée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    CREATE MineStoredProcedure
    @Mavar as varchar(10)
    AS
    IF (@Mavar) ="%"
      BEGIN
    	SELECT * FROM ma_table
      END
    ELSE
      BEGIN
            SELECT * FROM autre_table
      END
    Car j'ai cherché sur la msdn et les conditions sont bien souvent utilisée pour la gestion d'erreur, ou sur la création de procédure conditionnée.

    Merci pour votre aide.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 356
    Par défaut
    Bonjour,

    Pour te répondre succintement, le code que tu affiches est exacte. Les variables d'entrée des procédures stockées sont équivalentes aux variables d'entrée des fonctions d'autres langages comme le C++ ou le JAVA.

    On peut donc les utiliser pour faire des tests pour des conditions.

    Mais on peut aussi faire bien d'autres choses avec elles. Je te conseille de lire des tutoriaux sur les procédures stockées SQL. Il y en a de très bon sur ce site. Tu trouveras un grand éventail des possiblités que fourni le T-SQL.

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Par défaut
    Merci pour cette réponse ,

    Dans la même optique que mon précédent si la syntaxe est correcte , lorsque que je veut créer cette procédure Sql me retourne l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Nom de colonne non valide : '%'
    Mais on peut aussi faire bien d'autres choses avec elles. Je te conseille de lire des tutoriaux sur les procédures stockées SQL. Il y en a de très bon sur ce site. Tu trouveras un grand éventail des possiblités que fourni le T-SQL.
    Promis des que j'ai 5 minutes je (re)découvre tous ces tutos et y prétterai la plus grande attention .

  4. #4
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Remplace les guillements par une apostrophe.

    Le code exact serait '%'.

    Est-ce que le code que tu nous soumets est ton code en réel ou juste un exemple afin que l'on comprenne ? Car si c'est ton code réel, il y a mieux à faire... Je te suggère par exemple de passer comme paramètre le nom de la table; paramètre que tu initialiseras à une valeur par défaut.

    Ton code gagnera en clarté.

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Par défaut
    Bonjour voici mon code réel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    ALTER PROCEDURE [dbo].[PS_PC_Affichage_Historique]
    	-- Add the parameters for the stored procedure here
    	@Serial as varchar(10)
     
    AS
     
    If (@Serial) <> '%'
    BEGIN
    	SELECT SecID,Serial, Date_Acte, Motif, AncienStatus, NouveauStatus, [User]
    	FROM HistoriquePC  
    	Where Serial  = @Serial 
    	Order by Serial	
    END
     
    Else
    	BEGIN
    	SELECT SecID,Serial, Date_Acte, Motif, AncienStatus, NouveauStatus, [User]
    	FROM HistoriquePC  
    	Where Serial like @Serial 
    	Order by Serial	;
    END
    Maintenant que j'ai mis des quottes (ce que j'avais déjà essayé) il me met cette erreur :

    La variable scalaire "@Serial" doit être déclarée.
    Merci

  6. #6
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Par défaut
    J'ai réussi :

    Voici le code de la condition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    If (@Serial) <> '%'
    	BEGIN
    	PRINT('Serial vaut : autre chose que %')
     
    	SELECT SecID,Serial, Date_Acte, Motif, AncienStatus, NouveauStatus, [User]
    	FROM HistoriquePC  
    	Where Serial  = @Serial 
    	Order by Serial	
    END
     
    Else if (@Serial) = '%'
    	BEGIN
    	PRINT('Serial vaut :  %')
     
    	SELECT SecID,Serial, Date_Acte, Motif, AncienStatus, NouveauStatus, [User]
    	FROM HistoriquePC  
    	Where Serial like @Serial 
    	Order by Serial	;
    END
    Merci à ceux qui m'ont apportés leur aide

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

Discussions similaires

  1. condition dans la procedure stockée
    Par Betatesteur dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 09/03/2006, 14h55
  2. Réponses: 6
    Dernier message: 24/09/2004, 13h10
  3. procedure stockée champ date
    Par tripper.dim dans le forum SQL
    Réponses: 5
    Dernier message: 25/04/2003, 09h47
  4. Appel a une procedure stockée en vba
    Par The_Nail dans le forum VBA Access
    Réponses: 36
    Dernier message: 01/04/2003, 16h44
  5. procedure stockée dans un dbbatch
    Par pram dans le forum XMLRAD
    Réponses: 4
    Dernier message: 07/02/2003, 16h35

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