簡體   English   中英

如何在SSIS中插入新記錄之前清空目標表?

[英]How to empty my destination table before inserting new records in SSIS?

我使用SSIS生成和轉換新數據,以便以后在新系統中使用。 每次運行我的SSIS包時都會出現問題,它會不斷地將新記錄插入到我的目標表中。

如何先清空目標表(/ OLE DB目標),然后插入新生成的記錄?

目前,此問題的解決方法是在運行我的包之前delete from DestTable執行delete from DestTable

將刪除語句放在Execute SQL Task 然后將它作為流程的第一個組成部分。 該組件看起來像這樣:

在此輸入圖像描述

創建執行SQL任務。 讓它先運行。 對於sqlstatment來做。

Truncate table DestTable

使用truncate table比使用delete更好,因為它忽略了所有索引,只刪除了所有內容。

有一點背景信息。 我將嘗試解釋為什么你應該使用truncate table而不是delete table。 刪除表是基於行的操作,這意味着每行都被刪除。 截斷表是一個數據頁操作,整個數據頁被分離。 如果你有一個包含一百萬行的表,那么截斷表會快得多,那就是使用刪除表的語句。

關於使用Truncate表的一個警告,它確實運行得更好。 但是,它還需要您的SSIS系統帳戶的其他權限。 您應該確保在生產中可以使用這些,否則您將不得不使用刪除。

MSDN參考

你需要使用它

truncate table table_name

這會使桌子清空

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM