Max Vernon shows us how to use the ROWVERSION
data type to tell how much work you have to do to ETL data over from one table to another:
The OLTP table implements a
rowversion
column that is automatically updated whenever a row is updated or inserted. The rowversion number is unique at the database level, and increments monotonically for all transactions that take place within the context of that database. Thedbo.OLTP_Updates
table is used to store the minimum row version available inside the transaction used to copy data from the OLTP table into the OLAP table. Each time this code runs it captures incremental changes. This is far more efficient than comparing all the rows in both tables using a hashing function since this method doesn’t require reading any data other than the source data that is either new, or has changed.
I think this is the first time I’ve seen someone use ROWVERSION
types successfully.