Incremental load without a unique sequential id and modification date

I have a data loading situation were I'm stuck with, so I hope some off you can help me.

For almost all our customers we use a incremental load approach based on a unique sequential id or modification date.

Unfortunately with this customer there is no unique sequential id (by combining 3 fields we can create a unique key but it is not sequential) and there is no modification date. There is a date field but we cannot use it.

I cannot use Where Exists with the SQL statement.

The base QVD has about 4,5 million entries.

Unfortunately we can also not create a additional field in the database with a trigger or something.

The only way I know of is to create a hash key from all the fields (or at least all non-key fields). You can use the three fields that combine to a unique key to keep track of new or removed items. You can check for each key value if the calculated hash has changed. If the hash value is different at least one field has a new value. Barry Harmsen wrote a bit about it here: www.qlikfix.com/2014/03/11/hash-functions-collisions/