Erreur Procédure SQL SERVER

medfourati Messages postés 3 Date d'inscription dimanche 27 septembre 2009 Statut Membre Dernière intervention 11 juin 2012 - 8 juin 2012 à 10:43
medfourati Messages postés 3 Date d'inscription dimanche 27 septembre 2009 Statut Membre Dernière intervention 11 juin 2012 - 11 juin 2012 à 18:14
Bonjour,

J'ai créé une procédure stockée dans une base de donnée sql server mais lorsque je l’exécute un message d'erreur de syntaxe se produit !
J'ai pas pu localisé l'erreur.
Je serais très heureux si vous m'aiderez à trouvez cette erreur.
Voici la procédure :

CREATE PROCEDURE [dbo].[ChargementCompteur](@Code nvarchar(200))
AS
Declare @Annee nvarchar(10)
Declare @AnneeSys nvarchar(10)
Declare @Valeur nvarchar(10)
Declare @Valint int(10)
select @Annee Annee from Compteurs Where Code @Code
Select @AnneeSys = YEAR(GETDATE())
if @Annee = @AnneeSys
{
if @Code = 'Action'
{ select @Valeur As Valeur from Compteurs where Code @Code And Annee @Annee
set @Valint = Convert(int, @Valeur)
set @Valint = @Valint + 1
set @Valeur = Convert( nvarchar(10), @Valint)
select Annee + @Valeur As Valeur from Compteurs Where Code = @Code
}

else
select Annee + Valeur As Valeur from Compteurs Where Code = @Code
}
Else
Select @AnneeSys + '001' As Valeur from Compteurs Where Code = @Code

GO

J'attend vos réponses avec impatience.
Merci d'avance

3 réponses

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
8 juin 2012 à 15:01
Salut,

utilise les balises code pour que ton SQL soit lisible et fais suivre l'erreur exacte (code et message).
0
cgandco Messages postés 219 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 22 juin 2017 9
11 juin 2012 à 16:37
Je vois deux problème avec ton code,

1. la fonction year renvoie un int et pas un nvarchar(), utilise le convert(.....)

2. la syntaxe pour les if n'est pas correcte il n'y a pas de {} en SQL.

if faut la syntaxe
if (condition)
     begin
        instruction 1;
        instruction 2;
     end
else
     begin
        instruction 1;
        instruction 2;
     end


Je n'ai pas testé.

bonne journée.



Faites simple, aussi simple que possible, mais pas simpliste.
A. Einstein.
0
medfourati Messages postés 3 Date d'inscription dimanche 27 septembre 2009 Statut Membre Dernière intervention 11 juin 2012
11 juin 2012 à 18:14
Merci beaucoup à vous tous j'ai bien rectifié l'erreur ;)
0
Rejoignez-nous