4

Looking for a combined INSERT/UPDATE/DELETE statement, MERGE is exactly what I need, but I can't seem to find if LINQ/SQL supports it (from http://www.sqlbook.com/SQL-Server/SQL-MERGE-35.aspx)

-- Merge order items into OrderItems table
MERGE INTO OrderItem As oi
USING @UpdatedItems ui
ON (oi.OrderID = ui.OrderID AND oi.ProductID = ui.ProductID)
WHEN MATCHED THEN
    UPDATE SET Quantity = ui.Quantity, UnitCost = ui.UnitCost
WHEN NOT MATCHED THEN
    INSERT (OrderID, ProductID, Quantity, UnitCost)
    VALUES (@OrderID, ui.ProductID, ui.Quantity, ui.UnitCost)
WHEN SOURCE NOT MATCHED THEN
    DELETE;
esac
  • 24,099
  • 38
  • 122
  • 179
  • 1
    If you can't do a MERGE yet, this person shows how to do an "Upsert" http://stackoverflow.com/questions/637225/how-would-you-write-an-upsert-for-linq-to-sql – DOK Jun 29 '10 at 18:57

1 Answers1

2

Current version of LINQ to SQL does not generate a MERGE statement. You must create a custom Upsert method in code to do an Upsert.

decyclone
  • 30,394
  • 6
  • 63
  • 80