2009-12-28 38 views
22

Làm cách nào để viết câu lệnh IF với nhiều đối số trong T-SQL?Nhiều câu lệnh IF đối số - T-SQL

lỗi hiện tại nguồn:

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 

Nó ném các lỗi sau:

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

+1

Hoạt động trên máy của tôi? Tôi nghĩ rằng lỗi có thể nằm giữa 'BEGIN' và' END' của bạn. Hoặc, nếu bạn không có gì giữa 'BEGIN' và' END', đó sẽ là vấn đề. – Aaronaught

+0

Cảm ơn bạn đã nhập. Đó là phần '--do một số công việc' đang gây ra vấn đề. Tôi đang xây dựng một câu lệnh SQL động ... ugh! –

Trả lời

38

Bạn đang làm điều đó đúng. Các khối mã rỗng là những gì đang gây ra vấn đề của bạn. Đây không phải là cấu trúc điều kiện :)

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

Đó là cách để tạo ra biểu thức boolean phức tạp: kết hợp chúng với AND và OR. Đoạn trích bạn đã đăng không ném bất kỳ lỗi nào cho IF.

1

Dường như hoạt động tốt.

Nếu bạn có một sản phẩm nào BEGIN ... END khối bạn có thể thấy

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

1

Không chắc vấn đề là gì, điều này dường như chỉ làm việc tốt?

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

Mã của bạn hợp lệ (chỉ có một ngoại lệ). Nó được yêu cầu phải có mã giữa BEGIN và END.

Thay

--do some work 

với

print '' 

Tôi nghĩ có lẽ bạn đã thấy "END và không "VÀ"

Các vấn đề liên quan