I have included 2 examples - both are using the order details table from the northwind database - the backup is called od2:
This query uses a left outer join from od2 to order details - this will allow you to pull all records that are in od2 even if no match occurs. The key here is that the select statement uses orderid from order details as well and if there is no match this field will be blank:
select od2.*,o.orderid
from od2 left outer join [order details] as o
on ((od2.orderid = o.orderid) and
(od2.productid = o.productid) and
(od2.unitprice = o.unitprice) and
(od2.quantity = o.quantity) and
(od2.discount = o.discount))
You can also add a where clause to this statement to return only rows that exist in od2 but not order details:
where o.orderid is null
This query will only select records that exist in od2 but not order details:
select od2.*
from od2
where not exists
( select * from [order details] as o where
((od2.orderid = o.orderid) and
(od2.productid = o.productid) and
(od2.unitprice = o.unitprice) and
(od2.quantity = o.quantity) and
(od2.discount = o.discount)))
I have included all fields for comparison because I do not know your table structure. But basically you will have to keep up with updates of all fields - otherwise it will be interpreted as a delete, when in fact it is not. The exception would be if you have a unique identifier (primary key(s) on your tables) that is never reused - even when deleted, then you would not have to worry about validating against all fields (just the primary key field(s)) and any updates. Also, remind yourself if the primary key has to updated for any reason, you will have to make the same modifications to the all-inclusive table.
Good luck.