2010-04-28 33 views
8

Tôi có một số vòng lặp và điều kiện. Nếu mã lệnh được khớp thì tôi muốn dừng hoặc thoát khỏi thủ tục lưu sẵn. Làm thế nào để làm điều đó?Thoát khỏi quy trình được lưu

while @@fetch_status=0 
    begin 
     if x=0 
      'exit stored procedure 
    end 
+0

Các loại hình và phiên bản của SQL của bạn sử dụng? Sql Server, Oracle, MySql? @@ fetch_status không đề xuất máy chủ sql. – amelvin

+1

chấp nhận trả lời nó nó làm việc cho bạn –

Trả lời

10

nếu bạn đang sử dụng Microsoft SQL Server hơn bạn có thể sử dụng Return Tuyên Bố

while @@fetch_status=0 begin if x=0 return; end 
+0

thx cho câu trả lời .. tôi có thể hỏi u thêm question.hehe ... kể từ khi im mới trong sql ... thx b4 ... làm thế nào về nếu i hv 2 loop trong khi @@ fetch_status = 0 bắt đầu bộ y = y + 1 bộ x = 0 khi @@ fetch_status = 0 bắt đầu x = y + 1 nếu y = 5 'thoát khỏi thứ hai làm lúc và trở lại làm đầu tiên while -> y = y + 1 kết thúc kết thúc – leonita

+0

có trong trường hợp đó bạn phải sử dụng câu lệnh goto được đề xuất trong câu trả lời dưới đây –

4

By @@fetch_status nó trông giống như của bạn bên trong một vòng lặp con trỏ vì vậy tôi sẽ không trở lại vào thời điểm đó như bạn sẽ bỏ qua dọn dẹp sau bản thân bạn.

... 
if x=0 
    GOTO DONE 
... 
/* at the end of the sp */ 
DONE: 
    CLOSE @your_cur 
    DEALLOCATE @your_cur 
+0

ic ...... thx alex – leonita

1

sử dụng thử trở lại

while @@fetch_status=0 
    begin 
     if x=0 
      return 
    end 
Các vấn đề liên quan