Welcome to MSDN Blogs Sign in | Join | Help

Lookup Pattern: Upsert

This is a pretty basic pattern where we use a lookup to determine whether we need to update and existing row, or insert a new one. The lookup checks if a key or set of values exists. If the key isn't found, the row is sent to an OLEDB Destination for the insert. If it is found, it is sent to an OLEDB Command to do the update.

Note, the OLEDB Command transform operates on a row by row basis - so a separate SQL statement will be executed for every row going in. As such, the OLEDB Command can be very slow if you're processing a large number of rows. An alternate approach is to stage the data, and either update your target table using the MERGE statement, or an UPDATE ... FROM batch command.

 

 

image

 

You can also check out the MERGE Destination or Batch Destination available on Codeplex. John Welch (author of the Batch Destination) has a blog post which compares the two.

Published Saturday, November 22, 2008 8:31 PM by mmasson
Filed under:

Comments

# Lookup Patterns

From the Lookup presentation I put together for the MS BI conference in October, here is a series of

Sunday, November 23, 2008 12:20 AM by SSIS Team Blog

# Learn more about Lookup and its new features in 2008

The SQL Server Integration Services team added valuable new caching options (and scalability) to the

Monday, January 19, 2009 5:10 PM by Douglas Laudenschlager
Anonymous comments are disabled
 
Page view tracker