Bonjour,
Voici une procédure qui permet de remplir une table DATE avec tous les jours de l'année.
Si la procédure est lancée plusieurs fois, je dois tester si l'enregistrement existe deja. Je n'arrive à rien, j'ai tester IF EXIST avec select...mais apparement dans le WITH ca ne marche pas.
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 WITH calendar(date_calendar) AS ( SELECT CAST(cast(year(getdate())+1 AS varchar(4)) + '0101' AS datetime) UNION ALL SELECT DATEADD(dd,1,date_calendar) FROM calendar WHERE date_calendar < cast(cast(year(getdate())+1 AS varchar(4)) + '1231' AS datetime) ) INSERT INTO [DW].[dbo].[Dim_Date] ([DATE_TIME] ,[JOUR] ,[MOIS] ,[ANNEE]) SELECT date_calendar, CAST(DAY(date_calendar) AS VARCHAR(2)), CAST(MONTH(date_calendar) AS VARCHAR(2)), CAST(YEAR(date_calendar) AS CHAR(4)) FROM calendar OPTION (MAXRECURSION 365)
QQ'un a une idée??
Merci d'avance
Partager