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 :

[DEBUTANT] procédure stockées dans select


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 36
    Par défaut [DEBUTANT] procédure stockées dans select
    Salut à tous,

    tout d'abord, bravo a ce qui on refait le forum, super agreable !

    bon voila, j'ai des soucis avec ma 1ère procédure stockée.

    Ma question avant de vous afficher tous mon code pour rien :
    Est il possible de mettre une procedure stockée dans un select avec renvoie de valeur ?

    si oui, j'ai fais une proc de test et je m'arrache les cheveux car sa fonctionne pas quelquesoit le sens dans lequel je la tourne.

    Voici mon test :

    La procedure créée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE  PROCEDURE newOrdre @RefCour varchar(19), @RefDern varchar(19) OUTPUT,
     @nOrdre smallint OUTPUT AS
     
    IF (@RefCour = @RefDern) 
    	SELECT @nOrdre = @nOrdre + 1
    	ELSE
    	BEGIN
    	SELECT @nOrdre = 1
    	SELECT @RefDern = @RefCour
    	END
     
    SELECT @nOrdre
    et la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    DECLARE @RefCour varchar(19)
    DECLARE @RefDern varchar(19)
    DECLARE @nOrdre smallint
    DECLARE @Temps varchar(9)
     
    SELECT @RefCour = 'test';
    SELECT @RefDern = 'aa';
    SELECT @nOrdre = 0;
     
    SELECT CodeListeFabStd, (AT_Ordre = newOrdre @RefCour, @RefDern, @nOrdre)
    FROM LDFC
    Le message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Serveur : Msg 170, Niveau 15, État 1, Ligne 10
    Ligne 10 : syntaxe incorrecte vers '='.
    La table existe bien sûr.

    Ca m'enerve car je suis quasiment sur que c une/des erreur(s) de syntaxe !!

    Voila si quelqu'1 peu m'expliquer mon erreur, j'accepte son aide volontier.
    Merci

  2. #2
    Membre chevronné
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Par défaut
    AT_Ordre = newOrdre ???

    cela dis que ta procédure stocké doit retourner une valeur ?? ça devient alors une fonction

  3. #3
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 36
    Par défaut
    c pour l'exemple, je souhaite faire une procedure car il me faut 2 paramètres soit en Entrée/Sortie en plus de la valeur de retour

    Est il possible de faire cette requete et quelle renvoie une valeur afficher comme un champ.

    J'espère que je m'explique bien, sinon hesite pas a demander des précision

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    Vous ne pouvez pas apeller une procédure dans un ordre SQL.

    Voici une syntaxe plus correcte :

    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
    DECLARE @RefCour varchar(19)
    DECLARE @RefDern varchar(19)
    DECLARE @nOrdre smallint
    DECLARE @Temps varchar(9)
    DECLARE @Ordre
     
    SET @RefCour = 'test';
    SET @RefDern = 'aa';
    SET @nOrdre = 0;
     
     
    EXEC newOrdre @RefCour, @RefDern OUTPUT, @nOrdre OUTPUT
     
    SELECT CodeListeFabStd, @nOrdre 
    FROM LDFC
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 36
    Par défaut
    mOueh ok, j'ai du mal m'expliquer désolé
    Ce fameux nOrdre, il doit être différent selon la reference. En fait si la reference (@RefCour) est identique à celle de la ligne précédente (@RefDern) le numero s'incremente de un, sinon il revient à 1

    Donc je vais poser ma question différement, quels serait la solution (PROC, FONCTION, WHEN ...) pour arriver a ca.

    Ex :
    Ref : nOrdre
    Reference1: 1
    Reference1: 2
    Reference2: 1
    Reference3: 1
    Reference3: 2

    Vous voyez le genre.

    Sacré boudiou !! :-) y'a qd même ben un moyen de faire un truc aussi bête sur un SGBD moderne.

  6. #6
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 228
    Billets dans le blog
    25
    Par défaut
    En v.2000 et précédentes, un curseur
    en v.2005, le T-SQL comprend de nouvelles fonctionnalités de ce type
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

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

Discussions similaires

  1. Appel de procédure stockée dans un select
    Par sabdoul dans le forum PL/SQL
    Réponses: 10
    Dernier message: 02/04/2015, 11h49
  2. Réponses: 2
    Dernier message: 19/05/2010, 16h20
  3. Appeler procédure stockée dans requête SELECT
    Par stever50 dans le forum Développement
    Réponses: 2
    Dernier message: 11/05/2010, 14h09
  4. Appel d'une procédure stockée dans un ordre select
    Par ellyne dans le forum Développement
    Réponses: 6
    Dernier message: 29/06/2008, 21h03
  5. Procédures stockées dans accèss?
    Par joe.lindien dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 21/11/2003, 15h31

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