• thanks you so much EUGENE for your precious help its done now for all the table who had similar message error

    but still have another error with a dimension_time generate with this script 🙁 if i revolve it i can move to the next step )

    CREATE PROCEDURE [dbo].[PS_DIM_TEMPS] /*(@Date_debut varchar(10), @Date_fin varchar(10))*/

    AS

    truncate table DWProd.dbo.DIM_TEMPS

    declare @D_DEBUT datetime

    declare @D_FIN datetime

    declare @Date_Complete datetime

    declare @Annee VARCHAR(4)

    declare @Annee2 int

    declare @campagne VARCHAR(5)

    declare @trimestre VARCHAR(6)

    declare @quinzaine varchar(1)

    declare @mois VARCHAR(6)

    declare @ordre_mois VARCHAR(6)

    declare @mois_complet VARCHAR(12)

    declare @semaine_annee VARCHAR(7)

    declare @jour VARCHAR(2)

    declare @jour_semaine VARCHAR(9)

    declare@anneeS VARCHAR(4)

    BEGIN

    SET @D_DEBUT = cast('01-10-2009' as datetime)

    SET @D_FIN = cast('30-09-2013' as datetime)

    /*set @D_DEBUT = @Date_debut

    set @D_FIN = @Date_fin*/

    WHILE @D_DEBUT<@D_FIN BEGIN

    set @Date_Complete= @D_DEBUT

    set @Annee =datename(YY,@D_DEBUT)

    set @trimestre =datepart(Q,@D_DEBUT)

    set @mois = datepart(MM,@D_DEBUT)

    set @ordre_mois = case @mois

    when '10' then 1

    when '11' then 2

    when '12' then 3

    when '1' then 4

    when '2' then 5

    when '3' then 6

    when '4' then 7

    when '5' then 8

    when '6' then 9

    when '7' then 10

    when '8' then 11

    when '9' then 12

    end

    set @mois_complet =datename(MONTH,@D_DEBUT)

    set @semaine_annee = datepart(WW,@D_DEBUT)

    set @jour = datepart(DD,@D_DEBUT)

    set @jour_semaine = datepart(DW,@D_DEBUT)

    if (@jour<16)

    set @quinzaine =1

    else

    set @quinzaine =2

    set @anneeS=@annee+1

    if (@jour>0 and @mois>9) set @campagne=substring(@annee,3,2)+'/'+substring(@anneeS,3,2)

    if (@jour>0 and @mois>9) set @annee2=@anneeS

    INSERT INTO DIM_TEMPS(DATEID,ANNEE,TRIMESTRE,

    MOIS,LIB_MOIS,SEMAINE,

    JOUR,JOUR_SEMAINE,

    QUINZAINE,CAMPAGNE,ANNEE_CAMP,ORDRE_MOIS)

    VALUES(@Date_Complete,@Annee,CONVERT(int,@trimestre),

    CONVERT(int,@mois),@mois_complet,CONVERT(int,@semaine_annee),

    CONVERT(int,@jour),CONVERT(int,@jour_semaine),

    CONVERT(int,@quinzaine),@campagne,@annee2,CONVERT(int,@ordre_mois))

    set @D_DEBUT =dateadd(d,1,@D_DEBUT)

    END

    Update DIM_TEMPS set DECADE=case When day(DATEID) between 1 and 10 then convert(varchar(2),month(DATEID))+'-D1'

    When day(DATEID) between 11 and 20 then convert(varchar(2),month(DATEID))+'-D2'

    When day(DATEID) between 21 and 31 then convert(varchar(2),month(DATEID))+'-D3' END

    END

    GO

    and this is the message error :

    Msg 242, Level 16, State 3, Procedure PS_DIM_TEMPS, Line 29

    The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

    (0 row(s) affected)

    (1 row(s) affected)