Quantcast
Channel: SQL.ru: Microsoft SQL Server
Viewing all articles
Browse latest Browse all 7251

OPTION (MAXRECURSION) не везде работает

$
0
0
подскажите, куда порыться
declare @v_start_date date = {d '2017-01-01'};
declare @v_end_date date   = {d '2017-01-02'};

with first_tree (vDate)
as
(
    -- Все дни периода через рекурсию
    select cast(cast(@v_start_date as date) as datetime) vDate
    union all
    select dateadd(hour, 12, vDate) vDate
      from first_tree
     where vDate < cast(cast(@v_end_date as date) as datetime)
)
select vDate CalendarDate,
       datename(dw, vDate) DayOfWeekName,
       (datepart(dw, vDate) + @@datefirst - 1) % 7 + 1 day_of_week_number
  from first_tree
  OPTION (MAXRECURSION 10) работает
  ; 

with first_tree (vDate)
as
(
    -- Все дни периода через рекурсию
    select cast(cast(@v_start_date as date) as datetime) vDate
    union all
    select dateadd(hour, 12, vDate) vDate
      from first_tree
     where vDate < cast(cast(@v_end_date as date) as datetime)
),
days_tree as
(
select vDate CalendarDate,
       datename(dw, vDate) DayOfWeekName,
       (datepart(dw, vDate) + @@datefirst - 1) % 7 + 1 day_of_week_number
  from first_tree
  OPTION (MAXRECURSION 10) НЕ работает
  
)
SELECT *
  FROM days_tree;

Viewing all articles
Browse latest Browse all 7251