When to use NEWID or NEWSEQUENTIALID and why
<p>I am trying to understand the practical real-life usage of <code>NewId</code> and '<code>NewSequentialId</code>, I usually use the <code>Identity</code> property when creating new table like this:</p>

<pre><code>CREATE TABLE MYTABLE
(
    [ID]    INT             PRIMARY KEY IDENTITY,
    [NAME]  NVARCHAR(MAX)   NOT NULL
);
GO
</code></pre>

<p>Is the above code not the best practice, If so should I replace it with this:</p>

<pre><code>CREATE TABLE MYTABLE
(
    [ID]    UNIQUEIDENTIFIER PRIMARY KEY DEFAULT NEWID(),
    [NAME]  VARCHAR(MAX)    NOT NULL
);
GO
</code></pre>

<p>Or with this:</p>

<pre><code>CREATE TABLE MYTABLE
(
    [ID]    UNIQUEIDENTIFIER ROWGUIDCOL PRIMARY KEY DEFAULT NEWSEQUENTIALID(),
    [NAME]  nVARCHAR(MAX)   NOT NULL
);
GO
</code></pre>

<p><strong>Question: Is NewId or NEWSEQUENTIALID a replacement for Identity, if not when to use each one?</strong></p>

<p>I am not trying to use the <code>NewId</code> or <code>NewSequentialId</code> as <code>Primary Key</code>, the code above is for demonstration purpose only, and maybe this code is better like this:</p>

<pre><code>CREATE TABLE MYTABLE
(
    [ID]        INT                 NOT NULL PRIMARY KEY,
    [ROWGUID]   UNIQUEIDENTIFIER    ROWGUIDCOL DEFAULT NEWSEQUENTIALID(),
    [NAME]      nVARCHAR(MAX)       NOT NULL
);
GO
</code></pre>