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 :

probleme de procédures stockées


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Points : 28
    Points
    28
    Par défaut probleme de procédures stockées
    bonjour,
    j'arrive pas à executer ma procedure stockée
    ALTER PROCEDURE [dbo].[InsertAppel]
    @poste BIGINT,
    @destination BIGINT,
    @tel BIGINT,
    @debut DATETIME,
    @fin DATETIME,
    @typeDebut BIGINT,
    @typeFin BIGINT,
    @duree BIGINT
    AS
    BEGIN
    BEGIN Tran
    INSERT INTO appel
    (
    id_Poste,
    id_Telephone,
    id_Destinataire,
    date_debut,
    date_fin,
    type_jour_debut,
    type_jour_fin,
    duree
    )
    VALUES(
    @poste,
    @tel,
    @destination,
    @debut,
    @fin,
    @typeDebut,
    @typeFin,
    @duree
    )
    Select identifiant from appel
    where id_Poste=@poste
    and id_Telephone=@tel
    and id_Destinataire=@destination
    and date_debut=@debut
    and date_fin=@fin
    COMMIT TRAN

    quand je click sur ctrl+F5 le resultat est Commande(s) réussie(s).
    et quand je click sur F5 le resultat est requete terminée avec erreur voici l'erreur:
    Msg 208, Niveau 16, État 6, Procédure InsertAppel, Ligne 40
    Nom d'objet 'dbo.InsertAppel' non valide.

    merci

  2. #2
    Expert éminent
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Points : 6 790
    Points
    6 790
    Billets dans le blog
    4
    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
    41
     
    ALTER PROCEDURE [dbo].[InsertAppel]
    @poste BIGINT,
    @destination BIGINT,
    @tel BIGINT,
    @debut DATETIME,
    @fin DATETIME,
    @typeDebut BIGINT,
    @typeFin BIGINT,
    @duree BIGINT
    AS
    BEGIN
    BEGIN Tran
    INSERT INTO appel
    (
    id_Poste,
    id_Telephone,
    id_Destinataire,
    date_debut,
    date_fin,
    type_jour_debut,
    type_jour_fin,
    duree
    )
    VALUES(
    @poste,
    @tel,
    @destination,
    @debut,
    @fin,
    @typeDebut,
    @typeFin,
    @duree
    )
    Select identifiant from appel
    where id_Poste=@poste
    and id_Telephone=@tel
    and id_Destinataire=@destination
    and date_debut=@debut
    and date_fin=@fin
    COMMIT TRAN

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

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 788
    Points : 3 054
    Points
    3 054
    Par défaut
    Ton instruction ALTER PROCEDURE va mettre à jour la définition de ta procédure; déjà existante, dbo.InsertAppel.

    Lorque tu fais F5 et que tu reçois un message "Commande réussie"; cela veut simplement dire que SQL Server a effectivement mis à jour ta procédure.


    Pour exécuter la procédure, tu dois faire un EXEC dbo.InsertAppel et lui passer tes paramètres.

    Un moyen simple de le faire : dans ton explorateur d'objet, fais un clic droit sur ta procédure et choisis l'option Execute. SSMS va te générer un script pour l'exécution. A toi de le compléter avec tes valeurs.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Il ne manquerai pas un End à ta procédure stockée?
    Correctement indenté cela donne
    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
    41
    42
    43
    ALTER PROCEDURE [dbo].[InsertAppel]
    	@poste BIGINT,
    	@destination BIGINT,
    	@tel BIGINT,
    	@debut DATETIME,
    	@fin DATETIME,
    	@typeDebut BIGINT,
    	@typeFin BIGINT,
    	@duree BIGINT
    AS
    BEGIN
    	BEGIN Tran
    		INSERT INTO appel
    		(
    			id_Poste,
    			id_Telephone,
    			id_Destinataire,
    			date_debut,
    			date_fin,
    			type_jour_debut,
    			type_jour_fin,
    			duree
    		)
    		VALUES
    		(
    			@poste,
    			@tel,
    			@destination,
    			@debut,
    			@fin,
    			@typeDebut,
    			@typeFin,
    			@duree
    		)
    		SELECT identifiant 
    		FROM appel
    		WHERE id_Poste=@poste
    			AND id_Telephone=@tel
    			AND id_Destinataire=@destination
    			AND date_debut=@debut
    			AND date_fin=@fin
    	COMMIT TRAN
    END
    Le End c'est moi qui l'ai rajouté.
    Sinon ton selectpour récupérer l'identifiant ne me parait pas sain.
    Intéresse toi à @@identity par exemple.
    [edit]
    D'un autre coté, peut-être que ton alter procédure ne fonctionne pas parce que la procédure n'existe pas encore dans ce cas, ce serait plutôt un create.

    La question est qu'est-ce que tu n'arrive pas à faire.
    a/ Executer ta procédure stockée, si oui quel est la syntaxe utilisée pour le faire.
    b/Modifier la procédure stockée
    C/Créer la procédure stockée, si oui remplace Alter par create.
    d/Autre chose dans ce cas précise quoi
    [/edit]
    A+
    Soazig

  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,

    Intéresse toi à @@identity par exemple
    SCOPE_IDENTITY() est plus précise

    L'erreur suivante :

    Nom d'objet 'dbo.InsertAppel' non valide.
    Montre effectivement que votre procédure stockée n'existe pas déjà.
    Remplacez l'ALTER par un CREATE comme l'a dit Soazig

    @++

Discussions similaires

  1. probleme avec le resultat d'une procédure stockée
    Par pbatty1 dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 24/01/2012, 14h23
  2. Réponses: 6
    Dernier message: 15/09/2010, 18h02
  3. Probleme de caractères avec une procédure stockée
    Par spaukensen dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 27/03/2008, 10h55
  4. Réponses: 9
    Dernier message: 15/10/2007, 10h20
  5. Problemes de resultats d'une procédure stockées
    Par gregb34 dans le forum Oracle
    Réponses: 16
    Dernier message: 09/05/2006, 12h54

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