SQL Server GUID Generator

Generate a GUID instantly, then copy ready-to-use T-SQL for SQL Server's UNIQUEIDENTIFIER type.

Generate a GUID in SQL Server

NEWID() - random GUID

SELECT NEWID();
-- e.g. 3FA85F64-5717-4562-B3FC-2C963F66AFA6

NEWSEQUENTIALID() - sortable GUID for clustered indexes

CREATE TABLE Orders (
    Id UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID() ROWGUIDCOL PRIMARY KEY,
    CustomerName NVARCHAR(255)
);

NEWSEQUENTIALID() only works as a column default and reduces clustered-index page fragmentation compared to NEWID(), since each value is greater than the last on a given server.

Using UNIQUEIDENTIFIER as a primary key

CREATE TABLE Orders (
    Id UNIQUEIDENTIFIER DEFAULT NEWID() PRIMARY KEY,
    CustomerName NVARCHAR(255)
);

INSERT INTO Orders (CustomerName) VALUES ('Jane Doe');

Casting and formatting

DECLARE @id UNIQUEIDENTIFIER = '3fa85f64-5717-4562-b3fc-2c963f66afa6';
SELECT CAST(@id AS NVARCHAR(36));
SELECT LOWER(CAST(@id AS NVARCHAR(36)));

Empty GUID

SELECT CAST('00000000-0000-0000-0000-000000000000' AS UNIQUEIDENTIFIER);

GUID vs IDENTITY as a primary key

NEWID() produces random, non-sequential GUIDs which can fragment clustered indexes under heavy insert load. For high-throughput tables prefer NEWSEQUENTIALID(), an IDENTITY integer column, or a UUID v7 value (see UUID v4 vs v7) generated in application code, which sorts chronologically like NEWSEQUENTIALID() but is portable across databases.