sql >> Database teknologi >  >> RDS >> Sqlserver

TSQL Maxrecursion på en cte

Du placerer sandsynligvis indstillingen det forkerte sted. Det skal være efter hvor

WITH allDays AS (
    SELECT @DateEarly AS date
    UNION ALL
    SELECT DATEADD(dd, 1, date) as date
    FROM allDays s  
    WHERE DATEADD(dd, 1, date) <= @DateLate
)
SELECT *
from allDays 
where dbo.isFestivo(date)>0
option (maxrecursion 200);

Men prøv dette i stedet for. Det vil være hurtigere...

select DATEADD(d, number, @dateearly) as [date]
from master..spt_values 
where type='p'
and number<=datediff(d,@dateearly,@datelate)
and dbo.isFestivo(date)>0



  1. Indsæt værdi efter udfør trigger

  2. Gem IPV6 og IPV4 i MySql og læs det også

  3. Hvordan ville jeg implementere en simpel webstedssøgning med php og mySQL?

  4. Hvorfor genererer EF SQL-forespørgsler med unødvendige nul-tjek?