CREATE DATABASE NULLCHECK GO USE NULLCHECK GO -- Create abreviated table CREATE TABLE TestTable ( [PrimaryId] UNIQUEIDENTIFIER NOT NULL DEFAULT NEWSEQUENTIALID() CONSTRAINT PK_Character PRIMARY KEY, [SecondayId] UNIQUEIDENTIFIER NULL CONSTRAINT FK_Id1 FOREIGN KEY REFERENCES TestTable ( [PrimaryId] ), [TertiaryId] UNIQUEIDENTIFIER NULL CONSTRAINT FK_Id2 FOREIGN KEY REFERENCES TestTable ( [PrimaryId] ) ); GO -- Put something in it! INSERT INTO TestTable ( [PrimaryId] ) DEFAULT VALUES ; GO INSERT INTO TestTable ( [PrimaryId] ) DEFAULT VALUES ; GO WITH Rnked AS ( SELECT [PrimaryId], ROW_NUMBER() OVER ( ORDER BY [PrimaryId] ) AS Rnk FROM TestTable ) INSERT INTO TestTable ( [SecondayId] , [TertiaryId] ) SELECT ( SELECT [PrimaryId] FROM Rnked WHERE Rnk = 1 ), ( SELECT [PrimaryId] FROM Rnked WHERE Rnk = 2 ) ; GO -- Show what's in it SELECT * FROM TestTable GO