Thanks all
Advice from PIEBALDconsult
I used DATEADD. Now is working fine. This is the code
;with CTE_No as
(
select 0 as NoAux
union all
select NoAux + 1 from CTE_No where NoAux < 300
)
INSERT INTO [dbo].[OP_Leave_Date]([Code],[Name],[Datefrom],dateto,nodays,id,typeleave)
SELECT [Code],[Name],dateadd(d,NOAUX,[Datefrom]),dateto,nodays,id,typeleave
FROM [dbo].[OP_LeaveApplication] CROSS JOIN CTE_No
WHERE dateadd(d,NOAUX,Datefrom) <= dateto
OPTION (MAXRECURSION 0);
Thank you
maideen