SSISで「Execute SQL Task」を実行します 何らかの検証を行うストアドプロシージャを実行します ストアドプロシージャで何か問題が発生したときにRAISERRORコマンドがあります。 しかし、これをテストすると、このタスクは失敗しません。 私はこれについてgoogledしていると多くの参照を見つけましたが、私のために働く解決策はありません。 SQL Server 2005をService Pack 3にアップグレードしましたが、これは何の違いもありません。 1つの参照は、例外がスローされたときに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