How to empty my destination table before inserting

2019-03-17 13:16发布

I use SSIS to generate and transform new data for later use in a new system. I have a problem every time I run my SSIS Package, it keeps inserting new records to my destination tables.

How can I empty my destination table (/OLE DB Destination) first and then inserting the newly generated records?

Currently the workaround for this problem is performing a delete from DestTable before running my package.

4条回答
等我变得足够好
2楼-- · 2019-03-17 13:38

you need to use this

truncate table table_name

this empties the table

查看更多
贼婆χ
3楼-- · 2019-03-17 13:40

One caveat about using Truncate table, it does run better for the reasons stated. However it also requires additional privileges for your SSIS System account. You should be sure that those are available to you in Production, otherwise you will have to use Delete.

MSDN Reference

查看更多
戒情不戒烟
4楼-- · 2019-03-17 13:52

Create an Execute SQL task. Have it run first. For the sqlstatment do.

Truncate table DestTable

Using truncate table is better then using delete as it ignores all the indexes and just removes everything.

For a little background info. I will try and explain why you should use truncate table instead of delete table. Delete table is a row based operation this means that each row is deleted. Truncate table is a data page operation the entire data page is delocated. If you have a table with a million rows it will be much faster to truncate the table then it would be to use a delete table statment.

查看更多
我想做一个坏孩纸
5楼-- · 2019-03-17 13:59

Put your delete statement in an Execute SQL Task. Then make it the first component of your flow. The component looks something like this:

enter image description here

查看更多
登录 后发表回答