2012-08-07 66 views
0

我正在执行SSIS程序包。该包将一个excel文件导入到SQL Server数据库2008中。 我在Excel导入期间设置了FIRE_TRIGGERS选项。 如果在INSERT之后有一定的条件,我想停止包的执行。 但是我尝试了很多东西,但是我没有成功。我删除了触发器,只是在每次插入时提出错误。但是,SSIS包并未停止。它会在稍后停止,因为如果发现重复记录,则该sproc无法执行。我希望在触发器被触发后停止。 感谢您帮助SSIS触发器不会停止执行程序包

代码为我的触发:

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 
+1

无论它来自何处,每一次插入都会触发该触发器。这不是一个触发器的工作。 – HLGEM 2012-08-07 22:18:13

回答

2

个人我的建议是要加载的Excel文件到一个临时表。 然后添加一个执行SQL任务来检查你想检查的条件,并在那里触发一个错误。当存在文件不能包含的特定条件时,这就是我停止包的方式。

如果你想简单地跳过坏记录,那是一个不同的过程。您可以使用条件拆分来识别不需要的记录,并将它们发送到异常表。

+0

是的,这是我最终做的。谢谢你的提示。 – Alex 2012-08-09 18:00:28