我正在执行SSIS包。该程序包将excel文件导入SQL Server数据库2008。 我在excel导入期间设置了FIRE_TRIGGERS选项。 如果在INSERT之后存在某种情况,我想停止执行包。 但是我尝试了很多东西,但是我没有成功。我删除了触发器,只是在每次插入时引发错误。但是,SSIS包不会停止。它确实会在以后停止,因为如果找到重复的记录,则sproc无法执行。我希望它在触发器触发后停止。 谢谢你的帮助
我的触发器代码:
ALTER TRIGGER [dbo].[TrigInsertBill]
ON [Invoice].[dbo].[Bill]
AFTER INSERT
AS
BEGIN
RAISERROR('This month/year combo exist in the BILL TABLE',16,1)
END
答案 0 :(得分:2)
我个人建议将Excel文件加载到临时表中。 然后添加一个执行SQL任务来检查您要检查的条件,并在那里引发错误,而不是在触发器中。这就是当存在文件不能包含的特定条件时我停止我的包的方法。
如果您想简单地跳过不良记录,那就是一个不同的过程。您可以使用条件性拆分来标识您不想要的记录,并将它们发送到异常表。