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 :

Erreur La variable scalaire "@var" doit être déclarée.


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1
    Par défaut Erreur La variable scalaire "@var" doit être déclarée.
    bonjour
    je viens d’écrire une petite procédure en T-SQL mais elle renvoie toujours l'erreur suivante:
    (Msg 137, Level 15, State 2, Line 1
    La variable scalaire "@@Retour" doit être déclarée.)
    Quelqu'un peut m'aider
    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
    22
    23
    24
    25
    26
    27
    28
    create proc sp_EmpDept (@NumDept int,@Ret int output)
    as
    begin
    -- @Ret c'est la variable qui va retourné la statue de la procedure
    declare @NbrEmp int
    if not exists (select Num_Dept from Dept where Num_Dept=@NumDept)
    begin
    set @Ret=1
    print('Le departement demandé n''existe pas')
    end
    set @NbrEmp=(select COUNT(Num_Emp) from Emp where Num_Departement=@NumDept)
    if @NumDept=Null
    begin
    set @Ret= 0
    Print('Il manque le paramètre')
    end
    if @NbrEmp>=1
    begin
    set @Ret= @NbrEmp
    select * from Emp where Num_Departement=@NumDept
    end
    end
    go
    --execution de la procedure
    Declare @Retour int
    exec sp_EmpDept @NumDept=3,@Ret=@Retour
    select @Retour
    go

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    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 : 21 999
    Billets dans le blog
    6
    Par défaut
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    create proc sp_EmpDept 
           @NumDept int,
           @Ret int output -- @Ret c'est la variable qui va retourner le statut de la procedure
    as
    begin
     
    declare @NbrEmp int;
     
    if not exists (select Num_Dept 
                   from   Dept 
                   where  Num_Dept=@NumDept)
    begin -- préférez RAISERROR ! C'est fait pour ça
       set @Ret=1; 
       print('Le departement demandé n''existe pas'); 
    end
     
    select @NbrEmp=COUNT(Num_Emp) -- pas de SET !!!
    from   Emp 
    where Num_Departement=@NumDept;
     
    if @NumDept IS Null --et non pas = !
    begin -- préférez RAISERROR ! C'est fait pour ça
       set @Ret= 0;
       Print('Il manque le paramètre');
    end
     
    if @NbrEmp>=1
    begin
       set @Ret= @NbrEmp
       select * from Emp where Num_Departement=@NumDept;
    end;
     
    end;
    go
     
    --execution de la procedure
    Declare @Retour int
    exec sp_EmpDept @NumDept=3,@Ret=@Retour OUTPUT-- manque !
    select @Retour
    go
    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/ * * * * *

Discussions similaires

  1. Erreur : La variable scalaire "@variable" doit être déclarée
    Par oliviers92 dans le forum Développement
    Réponses: 6
    Dernier message: 24/09/2013, 23h17
  2. Réponses: 2
    Dernier message: 31/05/2011, 12h12
  3. Erreur La Variable doit être déclarée
    Par tibofo dans le forum Développement
    Réponses: 1
    Dernier message: 29/12/2009, 16h25

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