none
syntaxe incorrecte dans ma procedure stockee RRS feed

  • Question

  • bonjour,

    je realise la procedure stockee suivante

    CREATE PROCEDURE dbo.CreerComplement
    	-- Add the parameters for the stored procedure here
    	@CMP_ID uniqueidentifier = '00000000-0000-0000-0000-000000000000' OUTPUT,
    	@Dos_ID uniqueidentifier,
    	@Cmp_NoBr nvarchar (50),
    	@Cmp_Desc nvarchar (50),
    	@Cmp_verse money,
    	@Node nvarchar (50)
    AS
    BEGIN
    	-- SET NOCOUNT ON added to prevent extra result sets from
    	-- interfering with SELECT statements.
    	SET NOCOUNT ON;
        IF @CMP_ID IS NULL OR @CMP_ID = '00000000-0000-0000-0000-000000000000' 
        BEGIN
          set @CMP_ID = NEWID ()
        END
        -- Insert statements for procedure here
    	UPDATE dbo.CSR_COMPLEMENT 
    	SET CMP_ID = @CMP_ID , DOS_ID =@Dos_ID ,CMP_NOBR =@Cmp_NoBr ,
    		CMP_DESC =@Cmp_Desc , CMP_MTVERSE =@Cmp_verse , CMP_DATE = CURRENT_TIMESTAMP 
    	WHERE CMP_ID = @CMP_ID 
    	IF @@ROWCOUNT =0
    	BEGIN
    		---verifions le nbre d'enregistrement pour ce dossier
    		---1 : recuperons ID du dossier
    		 declare @test real 
    		 set @test= (SELECT dbo.CSR_DOSSIER.DOS_ID 
    						FROM dbo.CSR_DOSSIER WHERE DOS_NODE =@node)
    		---2: cptons le nbre d'enregistrement pour ce dos
    		DECLARE @NbreEnregistrement int
    		set @NbreEnregistrement =(	SELECT COUNT (DOS_ID) FROM CSR_COMPLEMENT 
    									WHERE CSR_COMPLEMENT.DOS_ID =  (SELECT dbo.CSR_DOSSIER.DOS_ID 
    																	FROM dbo.CSR_DOSSIER WHERE DOS_NODE =@node))
    		IF @NbreEnregistrement=0
    		BEGIN
    			@Cmp_Desc ="VERSEMENT INITIAL"
    		END 
    		ELSE
    		BEGIN
    			@Cmp_Desc ="COMPLEMENT" + @NbreEnregistrement
    		END
    		 				
    		INSERT INTO CSR_COMPLEMENT 
    		VALUES(@CMP_ID ,(SELECT dbo.CSR_DOSSIER.DOS_ID 
    						FROM dbo.CSR_DOSSIER WHERE DOS_NODE =@node ),@Cmp_NoBr ,@Cmp_Desc ,	@Cmp_verse ,CURRENT_TIMESTAMP )
    	
    	END
    END
    GO

    toutefois apres le point 2 ou je compte le nombre d enregistrement,

    lorsque j ecris

            IF @NbreEnregistrement=0
            BEGIN
                @Cmp_Desc ="VERSEMENT INITIAL"
            END
            ELSE
            BEGIN
                @Cmp_Desc ="COMPLEMENT" + @NbreEnregistrement
            END

    j ai une erreur au niveau de la variable @Cmp_Desc, car je voudrais qu'en fonction du resultat sa valeur change.

    j ai beau regarder je ne vois et ne comprends pas d ou viens l erreur

    merci pour votre aide

    PS Je realise ceci avec MSQL Server Management


    Marcelle NGOUNOU

    mardi 8 mai 2012 04:06

Réponses

Toutes les réponses