 <p>Upside of GUIDs:</p> <p>GUIDs are good if you ever want offline clients to be able to create new records, as you will never get a primary key clash when the new records are synchronised back to the main database. </p> <p>Downside of GUIDs:</p> <p>GUIDS as primary keys can have an effect on the performance of the DB, because for a clustered primary key, the DB will want to keep the rows in order of the key values. But this means a lot of inserts between existing records, because the GUIDs will be random. </p> <p>Using IDENTITY column doesn't suffer from this because the next record is guaranteed to have the highest value and so the row is just tacked on the end every time. No re-shuffle needs to happen.</p> <p>There is a compromise which is to generate a pseudo-GUID which means you would expect a key clash every 70 years or so, but helps the indexing immensely.</p> <p>The other downsides are that a) they do take up more storage space, and b) are a real pain to write SQL against, i.e. much easier to type <code>UPDATE TABLE SET FIELD = 'value' where KEY = 50003</code> than <code>UPDATE TABLE SET FIELD = 'value' where KEY = '{F820094C-A2A2-49cb-BDA7-549543BB4B2C}'</code> </p> <p>Your declaration of the IDENTITY column looks fine to me. The gaps in your key values are probably due to failed attempts to add a row. The IDENTITY value will be incremented but the row never gets committed. Don't let it bother you, it happens in practically every table. </p> <p>EDIT:</p> <p>This question covers what I was meaning by pseudo-GUID. <a href="http://stackoverflow.com/questions/5977137/inserts-with-sequential-guid-key-on-clustered-index-not-significantly-faster">INSERTs with sequential GUID key on clustered index not significantly faster</a></p> <p>In SQL Server 2005+ you can use NEWSEQUENTIALID() to get a random value that is supposed to be greater than the previous ones. See here for more info <a href="http://technet.microsoft.com/en-us/library/ms189786%28v=sql.90%29.aspx" rel="nofollow">http://technet.microsoft.com/en-us/library/ms189786%28v=sql.90%29.aspx</a></p>