This is more of a general design question. I’ve followed the endless debates on other forums as to what to use for a table’s primary key (mainly GUID vs. Identity). As a practical matter I’ve found that using the identity type and letting the DB engine take care of creating new keys works well. My question comes down to, what is the best way to address the user’s requirement for a unique ID when using an identity value for the pk. For example if I had an order table, a natural key could be the sales order number. Unfortunately the identify pk by itself doesn’t make a good sales order, there is nothing to differentiate it from an invoice number that may also be an identity value. One solution would be to create the SO number from the identify value by adding a prefix or some other modification. Another approach would to generate a unique SO number, but then that just reintroduces a similar problem of maintaining a unique value for the pk that was solved by using identity value. At that point an option would be to forget the identity value altogether and just generate a unique value that is both the SO number and the primary key. I’m curious as to what others are doing in this situation.