sql >> Databáze >  >> RDS >> Sqlserver

TSQL Maxrecursion na CTE

Pravděpodobně uvádíte možnost na špatné místo. Musí to být za kde

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);

Ale zkuste to místo toho. Bude to rychlejší...

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. CHYBA PostgreSQL:zrušení příkazu kvůli konfliktu s obnovou

  2. Jak aktualizuji tabulku, abych přidal primární klíč a aktualizoval všechny existující řádky se zvýšenými ID?

  3. Vyberte limit jedinečných záznamů s N řádky

  4. Výpočet vážené průměrné ceny zásob produktů