我在SSIS中運行「執行SQL任務」 它運行一個存儲過程,執行一些驗證 在存儲過程中,當出現錯誤時,我有一個RAISERROR命令。 但是,當我爲此測試時,此任務無法中止。 我對此有Google搜索,並找到很多參考,但沒有解決方案,適合我。 我已經將我的SQL Server 2005升級到了Service Pack 3,但這沒有任何區別。 一個引用建議在引發異常時加入PRINT語句,這是行不通的。 那麼我該如何解決這個問題? 存儲過程中的代碼是;SSIS(SQL Server 2005)不捕獲SQL異常
ALTER PROCEDURE [dbo].[usp_VAL_Journey]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @Month AS INT
, @Year AS INT
SELECT TOP 1 @Year = DATEPART(YEAR, Date), @Month = DATEPART(MONTH, Date)
FROM dbo.JourneyLandingTable
SELECT TOP 1 *
FROM dbo.JourneyMasterTable
WHERE DATEPART(YEAR, Date) = @Year
AND DATEPART(MONTH, Date) = @Month
IF @@ROWCOUNT > 0
BEGIN
RAISERROR('JourneyMasterTable already contains data for this month.', 16, 1)
RETURN
END
SELECT DATEPART(YEAR, Date) AS year1, DATEPART(MONTH, Date) AS month1
FROM dbo.JourneyLandingTable
GROUP BY DATEPART(YEAR, Date), DATEPART(MONTH, Date)
IF @@ROWCOUNT > 1
BEGIN
RAISERROR('JourneyLandingTable contains data for more than 1 month.', 16, 1)
END
END