2017-10-03 56 views
1

메신저를 처음 사용하는 경우입니다. 나는 내 로그인 페이지가 실행하려고 내 webconfig.When true로 내 로컬 캐시를 설정 System.Data.SqlClient.SqlException가 HRESULT = 0x80131904 메시지 = 최대 저장 프로 시저, 함수를 발생SQL 실행 : 최대 저장 프로 시저 .. 레벨 초과

다음과 같은 오류를 제공합니다 , 트리거 또는보기 중첩 수준을 초과했습니다 (제한 32). 출처 = 닷넷하는 SqlClient 데이터 공급자 스택 트레이스는 :

그것은 내가 뭘 잘못 다음 코드

lock (lastlevelLock) 
     { 
      DataSet retval = new DataSet(); 
      if (UseLocalCache) 
      { 
       retval =Data.DataRepository.Provider.GetDetailsAll(); // this is where the error comes in 

       if (retval == null) 
        retval = new DataSet(); 
      } 
      else 

에 오류가 발생합니다? 왜냐하면 똑같은 코드와 db가 다른 컴퓨터에서도 잘 작동하기 때문입니다. stackflow에서 언급 한 다른 비슷한 오류를 살펴 봤지만 아무런 도움이되지 않았습니다.

--WITH ENCRYPTION 
AS 
BEGIN 

;WITH cte AS (
     SELECT //do selection 
     FROM Table g WITH(NOLOCK) 
    ) 
    SELECT //do selection 
    INTO #cte 
    FROM cte c 
     INNER JOIN list.Type gt WITH(NOLOCK) ON c.TypeId = gt.TypeID 
     INNER JOIN table.crumb br WITH(NOLOCK) ON c.ID = br.ID 
    ORDER BY Lev 
    SELECT 
    // select columns 
     NULL AS ResultExpected 
    INTO #TempGame 
    FROM #cte tg 
     JOIN list.Type gt WITH(NOLOCK) ON tg.TypeID = gt.TypeID 
    WHERE tg.ID IN (
     SELECT ID FROM table2 WITH(NOLOCK) 
     WHERE ID = tg.ID 

     ) 


    SELECT 
     //select columns 
    INTO #Temp2 
    FROM tanbe2 m WITH(NOLOCK) 
     INNER JOIN table g WITH(NOLOCK) ON m.ID = g.ID 
     //perform all joins 
    WHERE m.ID IN (SELECT ID FROM #Temp) 

     GETDATE() < ISNULL(m.ResultDateTime, m.ResultExpected) 


    SELECT * FROM #Temp 
    SELECT * FROM #Temp2 
    ORDER BY ResultExpected 

    DROP TABLE #cte 
    DROP TABLE #Temp 
    DROP TABLE #Temp2 


END 
GO 
+0

'GetDetailsAll' 메소드 콘텐츠를 표시 할 수 있습니까? 일반적으로 SELECT 문에 OPTION (MAXRECURSION 0)을 추가하여 SQL Server 쿼리에서 수정할 수 있지만 C# 코드에서 쿼리를 실행하는 방법을 알지 못합니다. –

+0

안녕하세요 @ TetsuyaYamamoto 내가 GetDetailsAll.But SQL 쿼리를 너무 거대하기 때문에 나는 그것에 조금 줄이려고했다 그러나 그 기본 구조를 추가 – Jesse

답변

0

여러 시간 동안 다른 솔루션을 검색하고 시도한 후에는 결국 DB AGAIN을 복원하고 작동하는 것처럼 보였습니다.