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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

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

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

慕標(biāo)5832272 2019-10-21 14:28:23
我有大量記錄的CTE查詢。以前它工作正常。但是最近,它對(duì)某些成員拋出了錯(cuò)誤聲明終止。在語句完成之前,最大遞歸100已用盡。因此,我提出OPTION (maxrecursion 0)或接受OPTION (maxrecursion 32767)查詢,因?yàn)槲也幌胂拗朴涗?。但是,結(jié)果是查詢需要永遠(yuǎn)加載。我該如何解決?這是我的代碼: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貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊

如果您要達(dá)到遞歸限制,那么您可能在贊助關(guān)系或數(shù)據(jù)循環(huán)方面有相當(dāng)大的深度。如下所示的查詢將檢測(cè)循環(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 );


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

TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊

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

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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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