Solved

SSIS: insert AND delete rows

Posted on 2007-11-21
6
4,128 Views
Last Modified: 2010-04-21
How can I use SSIS to insert AND delete rows in a SQL Server table based on an an action code contained in each row of a flat file?  Each row in the flat file contains an ACTION_CODE, an ID, and other data.  If the ACTION_CODE is 'A' then a row in the SQL Server table is to be inserted containing data from the flat file row including the ID.  If the ACTION_CODE is 'D' then all rows in the SQL Server table with an ID matching the ID in the flat file row are to be deleted.
0
Comment
Question by:mikeyrad
  • 2
  • 2
  • 2
6 Comments
 
LVL 18

Accepted Solution

by:
Yveau earned 300 total points
ID: 20331369
I would import the complete flatfile to a temp table.
That way you can insert all records with action code 'A' at once and delete all records with action code 'D' at once. Two set based actions ... should be pretty fast .

Hope this helps ...
0
 
LVL 25

Assisted Solution

by:imitchie
imitchie earned 200 total points
ID: 20333066
can SSIS create temp tables using the GUI?
if you will use it often, create a table matching the flat file, which I assume is TargetTable + 1 column (Action_Code)
set up a normal SSIS job to first truncate the table, then import into the table
then add a custom SQL query something like

delete TargetTable where ID in (select ID from UpdateTable where Action_Code = 'D');
insert into TargetTable (ID,b,c,d,e,f)
select ID,b,c,d,e,f from UpdateTable where Action_Code = 'A'
0
 

Author Comment

by:mikeyrad
ID: 20369538
It has to be done on a row by row basis.  I'm trying to use the Conditional Split Data Flow Transformation.  One branch goes to add records row by row, piece of cake.  I'm just stuck on what to do on the delete; Script, OLE DB Command?
0
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 
LVL 25

Expert Comment

by:imitchie
ID: 20370143
I'm sorry can I ask why it must be done on a row by row basis?
Using custom SQL is more flexible for certain tasks.
0
 

Author Closing Comment

by:mikeyrad
ID: 31410482
Actually, it turns out a little more complicated because of the format and order of the flatfile, but the concepts were sound.
0
 
LVL 18

Expert Comment

by:Yveau
ID: 20387471
Glad I could be of any help.
0

Featured Post

Active Directory Webinar

We all know we need to protect and secure our privileges, but where to start? Join Experts Exchange and ManageEngine on Tuesday, April 11, 2017 10:00 AM PDT to learn how to track and secure privileged users in Active Directory.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Slowly Changing Dimension Transformation component in data task flow is very useful for us to manage and control how data changes in SSIS.
Load balancing is the method of dividing the total amount of work performed by one computer between two or more computers. Its aim is to get more work done in the same amount of time, ensuring that all the users get served faster.
This video shows, step by step, how to configure Oracle Heterogeneous Services via the Generic Gateway Agent in order to make a connection from an Oracle session and access a remote SQL Server database table.
Viewers will learn how to use the INSERT statement to insert data into their tables. It will also introduce the NULL statement, to show them what happens when no value is giving for any given column.

820 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question