In the past I have experienced many problems with using Primary Keys with the Identity datatype. These include but not limited to migrating large amounts of data from old databases into new database designs while keeping the RI intact. I have also seen problems with getting the correct value from @@IDENTITY when a large volume of users are inserting into the same table. I know there is a work around for that by using temp tables but why use a work around when the developer can simply use a @varible = MAX(PK) + 1. My preference is not to use the identity data type. Any feedback would be greatly appreciated.