Using a GUID as a primary key and or clustering key in SQL Server database tables is a subject for religious debate. Sure, they are unique, but they are also wide which makes your nonclustered indexes bigger as well. Some developers swear by them and will use nothing else.
I have a customer using the uniqueidentifier data type (the GUID of SQL Server) along with NEWSEQUENTIALID to populate them. Most columns of the tables are foreign keys, also uniqueidentifiers, so the database is almost completely GUIDs.
I was really excited to hear that many previously Enterprise only features would be available in Standard Edition starting with SQL Server 2016 SP1. I’m talking about features that I would really love to implement for this customer such as database compression, partitioning, and columnstore indexes. But, guess what, the uniqueidentifiers just won’t work with these features. Ugh. Changing from uniqueidentifiers to integers would be incredibly painful.
So, that is why I hate this data type. The only thing I like is that there are four pronunciations for GUID: gwid, goo-id, G U I D, and my favorite, gooey D.
GUIDs are the spawn of the devil er… application developer