SQL Server CHANGE TRACKING
SQL Server CHANGE TRACKING is a SQL statement in the SQL Server Specific category. SQL Server: tracks which rows changed (INSERT/UPDATE/DELETE) since last synchronization. No schema changes needed. The syntax is ALTER DATABASE db SET CHANGE_TRACKING = ON;. It returns change tracking info. A typical example: -- Enable: ALTER DATABASE MyDB SET CHANGE_TRACKING = ON; ALTER TABLE employees ENABLE CHANGE_TRACKING; -- Get changes since last version: DECLARE @last_version BIGINT = 0; SELECT e.*, ct.SYS_CHANGE_OPERATION FROM CHANGETABLE(CHANGES employees, @last_version) ct JOIN employees e ON e.id = ct.id; -- Returns: changed rows + operation type (I=insert, U=update, D=delete) -- Get current version: SELECT CHANGE_TRACKING_CURRENT_VERSION() AS current_version; -- Use for: -- Data synchronization -- ETL incremental loads -- Cache… A close relative is OUTPUT Clause, which sQL Server: returns values from DML statements (like PostgreSQL RETURNING). A close relative is STUFF(), which sQL Server: deletes a specified length of characters from a string and inserts another string at the start position.