第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

帶有選項的無限循環(huán)CTE(最大遞歸0)

帶有選項的無限循環(huán)CTE(最大遞歸0)

慕標(biāo)5832272 2019-10-21 14:28:23
我有大量記錄的CTE查詢。以前它工作正常。但是最近,它對某些成員拋出了錯誤聲明終止。在語句完成之前,最大遞歸100已用盡。因此,我提出OPTION (maxrecursion 0)或接受OPTION (maxrecursion 32767)查詢,因為我不想限制記錄。但是,結(jié)果是查詢需要永遠加載。我該如何解決?這是我的代碼:with cte as(-- Anchor member definition    SELECT  e.SponsorMemberID , e.MemberID, 1 AS Level    FROM tblMember AS e     where e.memberid = @MemberIDunion all-- Recursive member definition    select child.SponsorMemberID , child.MemberID, Level + 1    from tblMember child join cte parenton parent.MemberID = child.SponsorMemberID)-- Select the CTE result    Select distinct a.*     from cte a    option (maxrecursion 0)
查看完整描述

2 回答

?
江戶川亂折騰

TA貢獻1851條經(jīng)驗 獲得超5個贊

如果您要達到遞歸限制,那么您可能在贊助關(guān)系或數(shù)據(jù)循環(huán)方面有相當(dāng)大的深度。如下所示的查詢將檢測循環(huán)并終止遞歸:


declare @tblMember as Table ( MemberId Int, SponsorMemberId Int );

insert into @tblMember ( MemberId, SponsorMemberId ) values

  ( 1, 2 ), ( 2, 3 ), ( 3, 5 ), ( 4, 5 ), ( 5, 1 ), ( 3, 3 );

declare @MemberId as Int = 3;

declare @False as Bit = 0, @True as Bit = 1;


with Children as (

  select MemberId, SponsorMemberId,

    Convert( VarChar(4096), '>' + Convert( VarChar(10), MemberId ) + '>' ) as Path, @False as Loop

    from @tblMember

    where MemberId = @MemberId

  union all

  select Child.MemberId, Child.SponsorMemberId,

    Convert( VarChar(4096), Path + Convert( VarChar(10), Child.MemberId ) + '>' ),

    case when CharIndex( '>' + Convert( VarChar(10), Child.MemberId ) + '>', Path ) = 0 then @False else @True end

    from @tblMember as Child inner join

      Children as Parent on Parent.MemberId = Child.SponsorMemberId

    where Parent.Loop = 0 )

  select *

    from Children

    option ( MaxRecursion 0 );


查看完整回答
反對 回復(fù) 2019-10-21
?
慕桂英3389331

TA貢獻2036條經(jīng)驗 獲得超8個贊

因此問題不是來自maxrecursion。來自CTE。我不知道為什么,但是可能包含任何贊助者周期:A-> B-> C-> A-> ...(

查看完整回答
反對 回復(fù) 2019-10-21
  • 2 回答
  • 0 關(guān)注
  • 1089 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號