2009-12-28 4 views
22

T-SQL에서 여러 인수를 사용하여 IF 문을 작성하려면 어떻게합니까?여러 인수 IF 문 - T-SQL

현재 소스 오류 :

DECLARE @StartDate AS DATETIME 
DECLARE @EndDate AS DATETIME 

SET @StartDate = NULL 
SET @EndDate = NULL 

IF (@StartDate IS NOT NULL AND @EndDate IS NOT NULL) 
    BEGIN 
     -- do some work 
    END 

그것은 다음과 같은 오류가 발생합니다 : AND 및 OR와 조합 : 복잡한 부울 식을 만들 수있는 방법

Incorrect syntax near the keyword 'AND'. Incorrect syntax near the keyword 'AND'. Incorrect syntax near ')'.

+1

내 컴퓨터에서 작동합니까? 오류가 BEGIN과 END 사이에 있다고 생각합니다. 또는'BEGIN'과'END' 사이에 아무것도 없다면 문제가 될 것입니다. – Aaronaught

+0

입력 해 주셔서 감사합니다. 이 문제를 일으키는 것은''어떤 일을하는''부분이었습니다. 동적 SQL 문을 작성 중입니다 ... 우! –

답변

38

print '' 

--do some work 

난 당신이"END를하지 "본 어쩌면 생각 교체 문제가 아닙니다. 조건 구조가 아닙니다.

DECLARE @StartDate AS DATETIME 

DECLARE @EndDate AS DATETIME 

SET @StartDate = NULL 
SET @EndDate = NULL 

IF (@StartDate IS NOT NULL AND @EndDate IS NOT NULL) 
    BEGIN 
     print 'yoyoyo' 
    END 

IF (@StartDate IS NULL AND @EndDate IS NULL AND 1=1 AND 2=2) 
    BEGIN 
     print 'Oh hey there' 
    END 
1

. 게시 한 스 니펫이 IF에 오류를 발생시키지 않습니다.

1

정상적으로 작동하는 것 같습니다.

당신이 빈 BEGIN ... END 블록이있는 경우 나타날 수 있습니다

Msg 102, Level 15, State 1, Line 10 Incorrect syntax near 'END'.

1

는 확실하지 무슨 문제가,이 잘 작동하는 것 같다?

DECLARE @StartDate AS DATETIME 
DECLARE @EndDate AS DATETIME 

SET @StartDate = NULL 
SET @EndDate = NULL 

IF (@StartDate IS NOT NULL AND @EndDate IS NOT NULL) 
    BEGIN 
     Select 'This works just fine' as Msg 
    END 
Else 
    BEGIN 
    Select 'No Lol' as Msg 
    END 
1

코드는 유효하지만 한 가지 예외가 있습니다. BEGIN과 END 사이에 코드가 있어야합니다.

이 좋아. 빈 코드 블록이 원인이 무엇이고 당신이하고있는 "