Je veux créer une fonction table pour récupérer la liste des jours entre deux dates données ;
J’ai essayé avec le code suivant


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
create function getJours(@datdeb as datetime, @datfin as datetime)
returns table
as
begin
   if (@datfin <> @datdeb)   
      return (
      select @datdeb 
      union
      select * from getJours(dateadd(d, @datdeb, 1), @datfin)
      )
   
   else
   
      return (select dateadd(d, @datdeb, 1))
   
end
Mais je trouve cette erreur

Msg 178, Niveau 15, État 1, Procédure getJours, Ligne 6
Une instruction RETURN avec une valeur de retour ne peut être utilisée dans ce contexte.
Msg 178, Niveau 15, État 1, Procédure getJours, Ligne 14
Une instruction RETURN avec une valeur de retour ne peut être utilisée dans ce contexte.
Msg 102, Niveau 15, État 31, Procédure getJours, Ligne 18
Syntaxe incorrecte vers 'BEGIN'.