SQL ";;;;;, &quot IF&quot &quot BEGIN&quot &quot END&quot IF&quot, 종료,?

Sql 사람이 전혀 없습니다. 코드 a 컨설턴트로써 작성했습니까 다음과 같습니다.

첫째, 그 과정에서 반드시 사탄들 - 시작 후 그동안 미디어만을 초등학교 3 할 경우 우리가 원하는 경우 그 밑에다 @Term 가변적입니다 는 성명을 발표했다. # 39 의 here& 점이다. 우리는 아직도 할 때 아니다 = 3 선을 행하는 @Term 드롭다운하십시오 두 번째 부분) 이 용어는 삽입하십시오 @classes fyi - 이거 끝나면 # 39 하고 있지만, s = 3 실행 중인 it& insert& # 39, s - 있어야 한다는 것은 모두 끝날 경우, 만약 @term = 3&quot &quot 있는 말. 섹선에서 게 아니라 일반 끝?

IF @SchoolCategoryCode = 'Elem' 

--- We now have determined we are processing an elementary school...

BEGIN

---- Only do the following if the variable @Term equals a 3 - if it does not, skip just this first part

    IF @Term = 3

    BEGIN

        INSERT INTO @Classes

        SELECT      
        XXXXXX  
        FROM XXXX blah blah blah

    END   <----(Should this be ENDIF?)

---- **always** "fall thru" to here, no matter what @Term is equal to - always do the following INSERT for all elementary schools

    INSERT INTO @Classes    
    SELECT
    XXXXXXXX    
    FROM XXXXXX (more code) 

END
질문에 대한 의견 (1)

일반 양식 SQL 욕금지 관련이 있다. "만약 '명령문은 기본적으로 싱글 a sql 문을 받을 수밖에 없다. 그러나 여러 SQL 문을 '는 SQL 문을 포함할 수 있는 특별한 종류의 최종 시작합니다.' 블록.

'괜찮아' 는 블록 너회의 SQL 을 생략하면 최종 시작합니다. 실행하십시오 실행하십시오 "만약 '의 일환으로 첫 번째 기술서임을 만 것.

기본적으로 이:

IF @Term = 3
    INSERT INTO @Classes
    SELECT              
        XXXXXX  
    FROM XXXX blah blah blah

왜냐하면 당신은 똑같은 해당하는 최종 시작합니다. 함께 '만' 블록, 단일 실행 발표했다. 그러나 같은 이유로 되지 않는 경우 등 '언어' 는 c-같은 중괄호 협력하였습니다 문을 안 좋은 생각, 그것은 항상 사용하는 것이 바람직하다 '시작' 과 '끝' '.

해설 (1)

Sql 의 ENDIF 없다.

이 경우 if 가 있는 경우에만 실행하십시오 기술서임을 직접 폴로비히 표현식에서는 진정한.

시작합니다. 최종 chunghwa 별도로 IF. 여러 블록으로 처리될 수 있는 it 바인딩됩니다 명령문입니다 함께 마치 하나의 발표했다. 업그레이드됨 시작합니다. 부분의 경우 전체 코드 블록 및 카타시안 한 뒤 직접 사용할 수 있는 시작합니다. 끝 또는 건너뛸지 실행됨을 e0100042.log 하나가 됩니다.

네 경우엔, (더 코드) 이 &quot 의심이 &quot. 다음과 같은 문제가 충스러웠으니 XXXXX 곳입니다.

해설 (0)

이 코드는 그러겄지 끄기도구 전달하십시오. # 39, & # 39 Else& 만약 당신이 사용해 보십시오. 보고 어떻게 됩니까?


IF @SchoolCategoryCode = 'Elem' 

--- We now have determined we are processing an elementary school...

BEGIN

---- Only do the following if the variable @Term equals a 3 - if it does not, skip just this first part

    IF @Term = 3
    BEGIN
        INSERT INTO @Classes

        SELECT              
            XXXXXX  
        FROM XXXX blah blah blah

        INSERT INTO @Classes    
        SELECT
        XXXXXXXX    
        FROM XXXXXX (more code) 
    END   
해설 (1)

그럼 뭐 태그일 경우 MS Sql Server 좋았소 노력해야 할 수 있어야 합니다. 사실, 엄밀히 말해, 그렇지 않다면, t need &amp 시작합니다. # 39 의 최종 전혀 스나스 there& 단 하나의 문을 최종 시작합니다. 블록. (난 solaris. @Classes 표는 가변으로?)

If @Term = 3
   INSERT INTO @Classes
    SELECT                  XXXXXX  
     FROM XXXX blah blah blah
-- -----------------------------

 -- This next should always run, if the first code did not throw an exception... 
 INSERT INTO @Classes    
 SELECT XXXXXXXX        
 FROM XXXXXX (more code)
해설 (0)

이 코드는 네스트된 & # 39 If& 분리하십시오 재작성할 수도 있습니다 # 39;; 기술서임을 느니라

INSERT INTO @Classes    
SELECT XXXXXX      
FROM XXXX 
Where @Term = 3   

---- **always** "fall thru" to here, no matter what @Term is equal to - always do
---- the following INSERT for all elementary schools    
INSERT INTO @Classes        
SELECT    XXXXXXXX        
FROM XXXXXX (more code) 
해설 (1)

제대로 기억이 없는 경우, 그리고 더 자주 그리고 나는한다. there is no END 에서 지원하는 경우 Transact-Sql. 이 작업을 시작하고 끝나는 어떻게해야합니다. 오류가 발생하지 있습니까?

해설 (0)

두 번째 삽입하십시오 @clases 장애가 발생할 수 있는 유일한 시간 불지옥이 삽입하십시오 오류가 발생했는지 처음 발표했다.

39 의 경우 that& 경우, 그 전에 먼저 결정해야 합니다 만약 두 번째 기술서임을 실행할 경우 또는 수행하기 위해 필요한 트랜잭션까지 롤백에서.

해설 (0)

이 코드는 따라 그리웠댔지 설명을 할 수 있기 때문에 올바른 것으로 보인다. # 39, t endif isn& 유효한 SQL 루프 제어 키워드. 실제로 볼 수 있는 데이터를 넣을 정말예요 삽입물과 @Classes? 사실 그냥 # 39, t 실행하십시오 wouldn& 경우 안좋았어요.

너희는너희가 할 것이 몇 인쇄하십시오 시도하시겠습니까 동일팔레트에 명령문입니다 거기에. 하고 그 위에 바로 선 각 삽입물의 인쇄하십시오 일부 어리석은 텍스트 출력 표시하십시오 실행하고 있습니다. 모두 활용할 경우, 그런후에도 너회의 셀레스트린스트리 출력입니다 용의자요 있다. 그냥 선택 할 수도 있습니다 대신 보기인쇄 (즉, 삽입하십시오 없이) 를 정확히 어떤 데이터를 급지되는지.

해설 (0)