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 :

procédure stockée erreur


Sujet :

Développement SQL Server

  1. #1
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut procédure stockée erreur
    Hello,

    Je débute avec les procédure stockés sur sql server 2005 et je n'arrive pas à voir d'ou vient le problème

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
     
    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    go
     
    ALTER PROCEDURE [dbo].[updateService]
     @affaireNum numeric,
     
     @envoyeLeServiceSAMPP datetime,
     @recuLeServiceSAMPP datetime,
     @secaRecuLeSAMPP datetime,
     @renvoyeLeSAMPP datetime,
     @preavisSAMPP varchar,
     
     @envoyeLeServiceSPC datetime,
     @recuLeServiceSPC datetime,
     @secaRecuLeSPC datetime,
     @renvoyeLeSPC datetime,
     @preavisSPC varchar,
     
     @envoyeLeServiceECAB datetime,
     @recuLeServiceECAB datetime,
     @secaRecuLeECAB datetime,
     @renvoyeLeECAB datetime,
     @preavisECAB varchar,
     
     @envoyeLeServiceSEn datetime,
     @recuLeServiceSEn datetime,
     @secaRecuLeSEn datetime,
     @renvoyeLeSEn datetime,
     @preavisSEn varchar,
     
     @envoyeLeServiceSTE datetime,
     @recuLeServiceSTE datetime,
     @secaRecuLeSTE datetime,
     @renvoyeLeSTE datetime,
     @preavisSTE varchar,
     
     @envoyeLeServiceBPN datetime,
     @recuLeServiceBPN datetime,
     @secaRecuLeBPN datetime,
     @renvoyeLeBPN datetime,
     @preavisBPN varchar,
     
     @envoyeLeServiceSAEF datetime,
     @recuLeServiceSAEF datetime,
     @secaRecuLeSAEF datetime,
     @renvoyeLeSAEF datetime,
     @preavisSAEF varchar,
     
     @envoyeLeServiceSagri datetime,
     @recuLeServiceSagri datetime,
     @secaRecuLeSagri datetime,
     @renvoyeLeSagri datetime,
     @preavisSagri varchar,
     
     @envoyeLeServiceSAR datetime,
     @recuLeServiceSAR datetime,
     @secaRecuLeSAR datetime,
     @renvoyeLeSAR datetime,
     @preavisSAR varchar,
     
     @envoyeLeServiceSBC datetime,
     @recuLeServiceSBC datetime,
     @secaRecuLeSBC datetime,
     @renvoyeLeSBC datetime,
     @preavisSBC varchar,
     
     @envoyeLeServiceSCG datetime,
     @recuLeServiceSCG datetime,
     @secaRecuLeSCG datetime,
     @renvoyeLeSCG datetime,
     @preavisSCG varchar
     
     AS
    BEGIN
    	IF EXISTS(SELECT affaireNum FROM AffaireServices WHERE serviceChar='SAMPP' AND affaireNum=@affaireNum
    	BEGIN
    	  UPDATE AffaireServices SET renvoyeLe=@renvoyeLeSAMPP,envoyeLe=@envoyeLeServiceSAMPP, recuLe=@recuLeServiceSAMPP,secaRecuLe=@secaRecuLeSAMPP, preavis=@preavisSAMPP WHERE serviceChar='SAMPP' AND affaireNum=@affaireNum
    	END
    	ELSE 
    	INSERT INTO AffaireServices (renvoyeLe,envoyeLe,recuLe,secaRecuLe,preavis,serviceChar,affaireNum,nom) VALUES (@renvoyeLeSAMPP,@envoyeLeServiceSAMPP,@recuLeServiceSAMPP,@secaRecuLeSAMPP,@preavisSAMPP,'SAMPP',@affaireNum,'SAMPP - Service des affaires militaires et de la protection de la population')
     
    	IF EXISTS(SELECT affaireNum FROM AffaireServices WHERE serviceChar='SPC' AND affaireNum=@affaireNum
    	BEGIN
    	UPDATE AffaireServices SET renvoyeLe=@renvoyeLeSPC,envoyeLe=@envoyeLeServiceSPC, recuLe=@recuLeServiceSPC,secaRecuLe=@secaRecuLeSPC, preavis=@preavisSPC WHERE serviceChar='SPC' AND affaireNum=@affaireNum
    	END
    	ELSE 
    	INSERT INTO AffaireServices (renvoyeLe,envoyeLe,recuLe,secaRecuLe,preavis,serviceChar,affaireNum,nom) VALUES (@renvoyeLeSPC,@envoyeLeServiceSPC,@recuLeServiceSPC,@secaRecuLeSPC,@preavisSPC,'SPC',@affaireNum,'SPC - Service des ponts et chaussees')
     
    	IF EXISTS(SELECT affaireNum FROM AffaireServices WHERE serviceChar='ECAB' AND affaireNum=@affaireNum
    	BEGIN
    	  UPDATE AffaireServices SET renvoyeLe=@renvoyeLeECAB,envoyeLe=@envoyeLeServiceECAB, recuLe=@recuLeServiceECAB,secaRecuLe=@secaRecuLeECAB, preavis=@preavisECAB WHERE serviceChar='ECAB' AND affaireNum=@affaireNum
    	END
    	ELSE 
    	INSERT INTO AffaireServices (renvoyeLe,envoyeLe,recuLe,secaRecuLe,preavis,serviceChar,affaireNum,nom) VALUES (@renvoyeLeECAB,@envoyeLeServiceECAB,@recuLeServiceECAB,@secaRecuLeECAB,@preavisECAB,'ECAB',@affaireNum,'ECAB - Etablissement cantonal d''assurance des batiments')
     
    	IF EXISTS(SELECT affaireNum FROM AffaireServices WHERE serviceChar='SEn' AND affaireNum=@affaireNum
    	BEGIN
    	    UPDATE AffaireServices SET renvoyeLe=@renvoyeLeSEn,envoyeLe=@envoyeLeServiceSEn, recuLe=@recuLeServiceSEn,secaRecuLe=@secaRecuLeSEn, preavis=@preavisSEn WHERE serviceChar='SEn' AND affaireNum=@affaireNum
    	END
    	ELSE 
    	INSERT INTO AffaireServices (renvoyeLe,envoyeLe,recuLe,secaRecuLe,preavis,serviceChar,affaireNum,nom) VALUES (@renvoyeLeSEn,@envoyeLeServiceSEn,@recuLeServiceSEn,@secaRecuLeSEn,@preavisSEn,'SEn',@affaireNum,'SEn - Service de l''environnement')
     
    	IF EXISTS(SELECT affaireNum FROM AffaireServices WHERE serviceChar='STE' AND affaireNum=@affaireNum
    	BEGIN
    	      UPDATE AffaireServices SET renvoyeLe=@renvoyeLeSTE,envoyeLe=@envoyeLeServiceSTE, recuLe=@recuLeServiceSTE,secaRecuLe=@secaRecuLeSTE, preavis=@preavisSTE WHERE serviceChar='STE' AND affaireNum=@affaireNum
    	END
    	ELSE 
    	INSERT INTO AffaireServices (renvoyeLe,envoyeLe,recuLe,secaRecuLe,preavis,serviceChar,affaireNum,nom) VALUES (@renvoyeLeSTE,@envoyeLeServiceSTE,@recuLeServiceSTE,@secaRecuLeSTE,@preavisSE,'TSE',@affaireNum,'STE - Service des transports et de l''energie')
     
    	IF EXISTS(SELECT affaireNum FROM AffaireServices WHERE serviceChar='BPN' AND affaireNum=@affaireNum
    	BEGIN
    	      UPDATE AffaireServices SET renvoyeLe=@renvoyeLeBPN,envoyeLe=@envoyeLeServiceBPN, recuLe=@recuLeServiceBPN,secaRecuLe=@secaRecuLeBPN, preavis=@preavisBPN WHERE serviceChar='BPN' AND affaireNum=@affaireNum
    	END
    	ELSE 
    	INSERT INTO AffaireServices (renvoyeLe,envoyeLe,recuLe,secaRecuLe,preavis,serviceChar,affaireNum,nom) VALUES (@renvoyeLeBPN,@envoyeLeServiceBPN,@recuLeServiceBPN,@secaRecuLeSTE,@preavisBPN,'BPN',@affaireNum,'BPN - Bureau de la protection de la nature')
     
    	IF EXISTS(SELECT affaireNum FROM AffaireServices WHERE serviceChar='SAEF' AND affaireNum=@affaireNum
    	BEGIN
    	      UPDATE AffaireServices SET renvoyeLe=@renvoyeLeSAEF,envoyeLe=@envoyeLeServiceSAEF, recuLe=@recuLeServiceSAEF,secaRecuLe=@secaRecuLeSAEF, preavis=@preavisSAEF WHERE serviceChar='SAEF' AND affaireNum=@affaireNum
    	END
    	ELSE 
    	INSERT INTO AffaireServices (renvoyeLe,envoyeLe,recuLe,secaRecuLe,preavis,serviceChar,affaireNum,nom) VALUES (@renvoyeLeSAEF,@envoyeLeServiceSAEF,@recuLeServiceSAEF,@secaRecuLeSTE,@preavisSAEF,'SAEF',@affaireNum,'SAEF - Service archeologique')
     
    	IF EXISTS(SELECT affaireNum FROM AffaireServices WHERE serviceChar='Sagri' AND affaireNum=@affaireNum
    	BEGIN
    	      UPDATE AffaireServices SET renvoyeLe=@renvoyeLeSagri,envoyeLe=@envoyeLeServiceSagri, recuLe=@recuLeServiceSagri,secaRecuLe=@secaRecuLeSagri, preavis=@preavisSagri WHERE serviceChar='Sagri' AND affaireNum=@affaireNum
    	END
    	ELSE 
    	INSERT INTO AffaireServices (renvoyeLe,envoyeLe,recuLe,secaRecuLe,preavis,serviceChar,affaireNum,nom) VALUES (@renvoyeLeSagri,@envoyeLeServiceSagri,@recuLeServiceSagri,@secaRecuLeSTE,@preavisSagri,'Sagri',@affaireNum,'Sagri - Service de l''agriculture"')
     
    	IF EXISTS(SELECT affaireNum FROM AffaireServices WHERE serviceChar='SAR' AND affaireNum=@affaireNum
    	BEGIN
    	      UPDATE AffaireServices SET renvoyeLe=@renvoyeLeSAR,envoyeLe=@envoyeLeServiceSAR, recuLe=@recuLeServiceSAR,secaRecuLe=@secaRecuLeSAR, preavis=@preavisSAR WHERE serviceChar='SAR' AND affaireNum=@affaireNum
    	END
    	ELSE 
    	INSERT INTO AffaireServices (renvoyeLe,envoyeLe,recuLe,secaRecuLe,preavis,serviceChar,affaireNum,nom) VALUES (@renvoyeLeSAR,@envoyeLeServiceSAR,@recuLeServiceSAR,@secaRecuLeSTE,@preavisSAR,'SAR',@affaireNum,'SAR - Service des autoroutes')
     
    	IF EXISTS(SELECT affaireNum FROM AffaireServices WHERE serviceChar='SBC' AND affaireNum=@affaireNum
    	BEGIN
    	      UPDATE AffaireServices SET renvoyeLe=@renvoyeLeSBC,envoyeLe=@envoyeLeServiceSBC, recuLe=@recuLeServiceSBC,secaRecuLe=@secaRecuLeSBC, preavis=@preavisSBC WHERE serviceChar='SBC' AND affaireNum=@affaireNum
    	END
    	ELSE 
    	INSERT INTO AffaireServices (renvoyeLe,envoyeLe,recuLe,secaRecuLe,preavis,serviceChar,affaireNum,nom) VALUES (@renvoyeLeSBC,@envoyeLeServiceSBC,@recuLeServiceSBC,@secaRecuLeSTE,@preavisSBC,'SBC',@affaireNum,'SBC - Service des biens culturels')
     
    	IF EXISTS(SELECT affaireNum FROM AffaireServices WHERE serviceChar='SCG' AND affaireNum=@affaireNum
    	BEGIN
    	      UPDATE AffaireServices SET renvoyeLe=@renvoyeLeSCG,envoyeLe=@envoyeLeServiceSCG, recuLe=@recuLeServiceSCG,secaRecuLe=@secaRecuLeSCG, preavis=@preavisSCG WHERE serviceChar='SCG' AND affaireNum=@affaireNum
    	END
    	ELSE 
    	INSERT INTO AffaireServices (renvoyeLe,envoyeLe,recuLe,secaRecuLe,preavis,serviceChar,affaireNum,nom) VALUES (@renvoyeLeSCG,@envoyeLeServiceSCG,@recuLeServiceSCG,@secaRecuLeSTE,@preavisSCG,'SCG',@affaireNum,'Service du cadastre et de la geomatique')
     
    END
    Voici les messages d'erreurs

    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
    44
    45
    46
    47
    48
    49
     
    Msg 156, Level 15, State 1, Procedure updateService, Line 61
    Syntaxe incorrecte vers le mot clé 'BEGIN'.
    Msg 156, Level 15, State 1, Procedure updateService, Line 63
    Syntaxe incorrecte vers le mot clé 'BEGIN'.
    Msg 156, Level 15, State 1, Procedure updateService, Line 66
    Syntaxe incorrecte vers le mot clé 'ELSE'.
    Msg 156, Level 15, State 1, Procedure updateService, Line 70
    Syntaxe incorrecte vers le mot clé 'BEGIN'.
    Msg 156, Level 15, State 1, Procedure updateService, Line 73
    Syntaxe incorrecte vers le mot clé 'ELSE'.
    Msg 156, Level 15, State 1, Procedure updateService, Line 77
    Syntaxe incorrecte vers le mot clé 'BEGIN'.
    Msg 156, Level 15, State 1, Procedure updateService, Line 80
    Syntaxe incorrecte vers le mot clé 'ELSE'.
    Msg 156, Level 15, State 1, Procedure updateService, Line 84
    Syntaxe incorrecte vers le mot clé 'BEGIN'.
    Msg 156, Level 15, State 1, Procedure updateService, Line 87
    Syntaxe incorrecte vers le mot clé 'ELSE'.
    Msg 156, Level 15, State 1, Procedure updateService, Line 91
    Syntaxe incorrecte vers le mot clé 'BEGIN'.
    Msg 156, Level 15, State 1, Procedure updateService, Line 94
    Syntaxe incorrecte vers le mot clé 'ELSE'.
    Msg 137, Level 15, State 2, Procedure updateService, Line 95
    La variable scalaire "@preavisSE" doit être déclarée.
    Msg 156, Level 15, State 1, Procedure updateService, Line 98
    Syntaxe incorrecte vers le mot clé 'BEGIN'.
    Msg 156, Level 15, State 1, Procedure updateService, Line 101
    Syntaxe incorrecte vers le mot clé 'ELSE'.
    Msg 156, Level 15, State 1, Procedure updateService, Line 105
    Syntaxe incorrecte vers le mot clé 'BEGIN'.
    Msg 156, Level 15, State 1, Procedure updateService, Line 108
    Syntaxe incorrecte vers le mot clé 'ELSE'.
    Msg 156, Level 15, State 1, Procedure updateService, Line 112
    Syntaxe incorrecte vers le mot clé 'BEGIN'.
    Msg 156, Level 15, State 1, Procedure updateService, Line 115
    Syntaxe incorrecte vers le mot clé 'ELSE'.
    Msg 156, Level 15, State 1, Procedure updateService, Line 119
    Syntaxe incorrecte vers le mot clé 'BEGIN'.
    Msg 156, Level 15, State 1, Procedure updateService, Line 122
    Syntaxe incorrecte vers le mot clé 'ELSE'.
    Msg 156, Level 15, State 1, Procedure updateService, Line 126
    Syntaxe incorrecte vers le mot clé 'BEGIN'.
    Msg 156, Level 15, State 1, Procedure updateService, Line 129
    Syntaxe incorrecte vers le mot clé 'ELSE'.
    Msg 156, Level 15, State 1, Procedure updateService, Line 133
    Syntaxe incorrecte vers le mot clé 'BEGIN'.
    Msg 156, Level 15, State 1, Procedure updateService, Line 136
    Syntaxe incorrecte vers le mot clé 'ELSE'.

  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 768
    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 768
    Points : 52 719
    Points
    52 719
    Billets dans le blog
    5
    Par défaut
    Votre sous requête introduite par EXISTS n'a pas de parenthèse fermante.

    Au passage vous avez utilisé des " imtempestifs.

    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/ * * * * *

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    Super merci

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

Discussions similaires

  1. Procédure stockée : erreur de création
    Par jeromesteffe dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 21/06/2007, 17h45
  2. [procédure stockée] Erreur dans un while
    Par LE NEINDRE dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 19/06/2007, 16h46
  3. Réponses: 7
    Dernier message: 03/05/2007, 12h44
  4. Création de procédure stocké erreur
    Par ran_hery dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 22/02/2007, 09h39
  5. [Procédure stockée] Erreur 1305
    Par SSJ17Vegeta dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 18/11/2005, 02h38

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