in src/TriggerBinding/SqlTableChangeMonitor.cs [788:811]
private SqlCommand BuildUpdateTablesPreInvocation(SqlConnection connection, SqlTransaction transaction)
{
string updateTablesPreInvocationQuery = $@"
{AppLockStatements}
DECLARE @min_valid_version bigint;
SET @min_valid_version = CHANGE_TRACKING_MIN_VALID_VERSION({this._userTableId});
DECLARE @last_sync_version bigint;
SELECT @last_sync_version = LastSyncVersion
FROM {GlobalStateTableName}
WHERE UserFunctionID = '{this._userFunctionId}' AND UserTableID = {this._userTableId};
IF @last_sync_version < @min_valid_version
BEGIN
UPDATE {GlobalStateTableName}
SET LastSyncVersion = @min_valid_version
WHERE UserFunctionID = '{this._userFunctionId}' AND UserTableID = {this._userTableId};
SELECT 'Updated LastSyncVersion from ' + CAST(@last_sync_version AS NVARCHAR) + ' to ' + CAST(@min_valid_version AS NVARCHAR);
END
";
return new SqlCommand(updateTablesPreInvocationQuery, connection, transaction);
}