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 :

comment déclarer des variables dans une proc?


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 45
    Points : 26
    Points
    26
    Par défaut comment déclarer des variables dans une proc?
    bonjour,
    dans ma procédure, je veux utiliser une variable locale, j'ai utilisé d
    declare @iddate varchar(10)

    lorsque je vérifie le syntaxe il me donne l'erreur suivante:
    syntaxe incorrecte vers '@iddate'

    svp aidez moi.
    voici ma procédure:
    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
    CREATE PROCEDURE dbo.addAction 
    @date varchar(10) , @heure varchar(5)  , @action varchar(200) , @incident int , @user int
     
    AS
     
    declare @iddate int
     
    select id_date into @iddate 
         from date 
         where date_action = @date 
         and  heure_action = @heure
     
    if (@iddate=Null)
         insert into date(date_action, heure_action) values (@date, @heure)
     
     
    select id_date into @iddate
         from date
         where date_action = @date 
         and  heure_action = @heure
     
    insert into suivi values (@iddate, @incident, @user, @action)
    merci d'avance

  2. #2
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut
    pour moi la déclaration semble correcte (à part si j'ai pas bien vu).
    Pour récupérer une valeur, je fairai plutot comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT @iddate  = id_date 
         FROM date 
         WHERE date_action = @date 
         AND  heure_action = @heure
    Pas de messages privés sur des questions techniques ! Je suis trop nul pour vous aider

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 45
    Points : 26
    Points
    26
    Par défaut
    merci infinement pour votre aide flogreg, le prob n'était pas dans l déclaration mais dans la partie de récupération. votre méthode marche très bien

  4. #4
    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 : 42
    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,

    Il vous faut remplacer l'instruction suivante, dans laquelle le INTO est illégal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT id_date INTO @iddate 
    FROM date 
    WHERE date_action = @date 
    AND  heure_action = @heure
    Par celle que vous a proposé flogreg parce que vous ne pouvez pas affecter une variable avec la clause INTO.

    La clause INTO est reservée soit à INSERT soit à une commande SELECT qui crée une table, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT A, B, C
    INTO maNouvelleTable
    FROM maTableSource
    Vous pouvez aussi utiliser INTO avec les tables virtuelles INSERTED et DELETED :
    - dans les triggers
    - combiné avec OUPUT dans des requêtes de mise à jour pour récupérer les nouvelles /anciennes valeurs

    A+

Discussions similaires

  1. [Debutant]Comment déclarer des variables dans un fichier a part
    Par megapacman dans le forum Général Java
    Réponses: 14
    Dernier message: 14/01/2008, 13h32
  2. Comment utiliser des variables dans une requête SQL ?
    Par Ragnarok85 dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 12/02/2007, 16h23
  3. Réponses: 7
    Dernier message: 23/01/2006, 11h53
  4. [AS2] déclarer des variables dans une fonction
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 12
    Dernier message: 02/08/2005, 12h50
  5. Comment completer une variable dans une PROC
    Par Le Basque dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/09/2004, 17h18

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