Everyone by now is familiar with how to create auto increment keys in SQL Server–just define an integer column with identity (start,increment) and you are set. To create a new parent record and then insert a related record into a child table, you perform the insert into the parent, then execute a select @@identity to capture the auto increment number used by the system and carry over that number into the second insert into the child. But what happens if your system has a trigger on the parent table that inserts audit information whenever an insert happens into an audit log? If the audit table also has an auto increment key, the select @@identity will return the number used by the audit log, not the parent record.