2011-03-25 80 views
0

在如果它炸彈或總是一些錯誤 - 任何幫助將非常感激。SQL Server 2000存儲過程沒有明顯的原因

CREATE PROCEDURE sp_LetsWork 
    (@MYID int, @ThisDate Datetime) 
AS 
    SET NOCOUNT ON 

    DECLARE @intErrorCode int, 
      @QStartDate datetime, 
      @QEndDate datetime 

    SELECT @intErrorCode = @@ERROR 

    --DATEPART(mm, @ThisDate) BETWEEN 1 and 3 -- test both options 
    BEGIN 
    IF @ThisDate BETWEEN '01/01/' + CONVERT(VARCHAR(4), YEAR(@ThisDate)) 
         AND '03/31/' + CONVERT(VARCHAR(4), YEAR(@ThisDate)) 
    RunQuarter: 
     SELECT * 
     FROM qryAR 
     WHERE CID = @MYID 
      AND (paiddate >= @QStartDate 
      AND paiddate <= @QEndDate) 
     --ORDER BY paiddate ASC 

     GO 
     -- GOTO RunQuarter 
    END 
    GO 

    SELECT @intErrorCode = @@ERROR 

    IF (@intErrorCode <> 0) GOTO ErrHandler 

    RETURN 0 

ErrHandler: 

    RETURN @intErrorCode 

GO 
+2

老兄,你必須給我們個錯誤,如果你真的希望幫助... – 2011-03-25 17:13:20

+0

如果導致錯誤? – Beth 2011-03-25 17:14:52

+0

錯誤170:第35行;錯誤的語法附近) – Kris 2011-03-25 17:23:08

回答

7

在存儲過程中您有一個GO中途。

GO不是SQL:它告訴客戶端工具,如SSMS其中一個批次結束

因此錯誤是paiddate <[email protected]),因爲這是因爲GO的存儲過程的末尾:沒有匹配END爲這

以上BEGIN這不是在執行「轟炸」,因爲不被創建它...

+0

感謝愚蠢的錯誤。已經很長時間了。 – Kris 2011-03-25 18:13:01

+0

@Kris:如果這解決了您的問題,並且您對答案滿意,請投票和/或接受使用箭頭並在左側打勾。鉭 – gbn 2011-03-25 20:05:15