2014-12-11 2 views
0

SQL Server 저장 프로 시저에 여러 개의 IF 블록이 있습니다.SQL 블록에서 IF 블록이 실행되었는지 확인하는 방법

IF @CurrentStatus IN (1, 4) AND @RoleID IN ('ADMN', 'PMGR', 'SMGR', 'DMGR', 'DESI', 'DERO') 
    BEGIN 
      -- SELECT query... 
    END 

IF @CurrentStatus = 2 AND @RoleID IN('ADMN') 
    BEGIN 
      -- SELECT query... 
    END 

더 많은 IF 개의 블록이 있습니다. IF의 조건이 충족되지 않아 어떤 쿼리도 실행되지 않으면 반환되는 데이터가 없습니다. 다른 데이터가 반환되지 않으면 기본값으로 반환 할 쿼리가 있습니다. 저장 프로 시저가 끝날 때 데이터가 반환되는지 어떻게 확인할 수 있습니까?

쿼리가 IF @@ROWCOUNT = 0으로 실행되었는지 확인하려고했지만 IF 블록 중 하나가 실행될 때 2 개의 결과 집합을 얻습니다.

+0

안녕하세요 당신은 단지 당신이 다음 SQL 서버 스크립트를 실행하고 실행하고자하는 것을 강조하는 경우, 당신은 사용할 수 있습니다 그 블록 만 실행합니다. 코드 블록에 문제가있는 경우 해당 블록에 대한 출력 만 표시됩니다. –

+0

내 저장 프로 시저가 ADO.NET에서 호출되고 있습니다. – DaveB

+0

SQL 서버 관리 스튜디오의 도구 메뉴에서 SQL 프로파일 러 도구를 사용해보십시오. ADO.Net 코드에 중단 점을 넣으면 프로파일 러가 SP를 실행하여 문제가 어디에 있는지 볼 수 있습니다. 여기 있어요 http://msdn.microsoft.com/en-gb/library/ms181091.aspx –

답변

2

만약 내가 제대로 이해/그렇지 않은 경우/그렇지는이 같은 ... 스크립트에서

IF @CurrentStatus IN (1, 4) AND @RoleID IN ('ADMN', 'PMGR', 'SMGR', 'DMGR', 'DESI', 'DERO') 
    BEGIN 
      -- SELECT query... 
    END 

Else IF @CurrentStatus = 2 AND @RoleID IN('ADMN') 
    BEGIN 
      -- SELECT query... 
    END 

Else 
    BEGIN 
     -- Default query 
    END 
+0

저에게 맞습니다 - 고마워요! – DaveB

관련 문제