Я запускаю «Выполнить задачу SQL» в службах SSIS
Он запускает хранимую процедуру, которая делает некоторую проверку
В хранимой процедуре у меня есть команда RAISERROR, когда что-то идет не так.
Однако, когда я проверяю это, эта задача не может быть прервана.
Я гуглил по этому поводу и нашел много ссылок, но ни одно решение не работает для меня.
Я обновил свой SQL Server 2005 до пакета обновления 3, но это не имеет никакого значения.
Одна ссылка предлагает добавить операторы PRINT, когда выдается исключение. Это не работает.
Так как мне это исправить?
Код в хранимой процедуре:
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