NEWSEQUENTIALID() is the best candidate for making a column to be a primary key (even a clustered one due to its sequential behaviour); that further still ensures its uniqueness across servers. However, not like its former function NEWID(), we can't explicitly call it. The lack of this capability has made NEWSEQUENTIALID() less attractive to me when we need to explicitly generate its value. For example, in my recent project I need to utilise FILESTREAM module that expects UNIQUEIDENTIFIER as the one and only primary key. Unfortunately, the identity value must be generated before hand??? Well, that what has come into my mind to create my own function (precisely stored procedure since the use of undeterministic function is prohibited inside a function).