Бомбардировка хранимым Proc SQL Server 2000 без видимой причины - PullRequest
0 голосов
/ 25 марта 2011

Если это бомбы или какие-то ошибки всегда - любая помощь будет очень цениться.

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  

1 Ответ

7 голосов
/ 25 марта 2011

У вас есть GO на полпути в сохраненной процедуре.

GO не является SQL: он сообщает клиентским инструментам, таким как SSMS, где заканчивается пакет

Так что ошибка после paiddate <=@QEndDate), потому что это конец сохраненного процесса из-за GO: нет никакого совпадения END для BEGIN выше

Это не "бомбардировка" при исполнении, потому что она не создается ...

...