There are a few caveats for sure
![Smile](http://forum.strataframe.net/Skins/Classic/Images/EmotIcons/Smile.gif)
First, if you want to use NewID() within SQL, you will have to create stored procedures for the INSERTs and configure the business objects to use them. The reason is that there is no method like SCOPE_IDENTITY() within SQL Server that will return the last created NewID(). So, at the top of the sproc, you need to call NewID() and place it into the output parameter specified for the PK. Then, you need to insert the record.
There is another option for GUIDs, and that is to use System.Guid.NewGuid() to create your Guids. You can put the call within the SetDefaultValues() of the business object. While you could technically get a duplication by letting each client create its own PKs, the MAC address of the computer is figured into creating the GUIDs (to help keep them unique since MAC addresses are unique) and you have a better chance of being struck by lightning, stung by a bee, and attached by a shark at the same time than you do of getting a duplicate GUID.
So, either use sprocs for your INSERTs for the BOs or use the System.Guid.NewGuid(). Either way, there's not really any downside to using GUIDs for PKs (other than if you look at the database, an integer is easier to read than 32digit number with dashes
)