2012-08-07 62 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