SSIS에서 "Execute SQL Task"를 실행합니다. 일부 유효성 검사를 수행하는 저장 프로 시저를 실행합니다. 저장 프로 시저에 문제가 생겼을 때 RAISERROR 명령이 있습니다. 그러나이 작업을 테스트하면이 작업이 중단되지 않습니다. 나는 이것에 대해 봤 거든 참조 많이 발견하지만, 나를 위해 일하는 해결책은 없다. SQL Server 2005를 서비스 팩 3으로 업그레이드했지만 아무런 차이가 없습니다. 하나의 참조는 예외가 throw 될 때 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