NEWID (Transact-SQL)
Applies to:
SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL analytics endpoint in Microsoft Fabric
Warehouse in Microsoft Fabric
Creates a unique value of type uniqueidentifier.
Transact-SQL syntax conventions
Syntax
NEWID ( )
Note
To view Transact-SQL syntax for SQL Server 2014 (12.x) and earlier versions, see Previous versions documentation.
Note
Not supported in Azure Synapse serverless pools.
Return Types
uniqueidentifier
Remarks
NEWID()
is compliant with RFC4122.
Examples
A. Using the NEWID function with a variable
The following example uses NEWID()
to assign a value to a variable declared as the uniqueidentifier data type. The value of the uniqueidentifier data type variable is printed before the value is tested.
-- Creating a local variable with DECLARE/SET syntax.
DECLARE @myid uniqueidentifier
SET @myid = NEWID()
PRINT 'Value of @myid is: '+ CONVERT(varchar(255), @myid)
Here is the result set.
Value of @myid is: 6F9619FF-8B86-D011-B42D-00C04FC964FF
Note
The value returned by NEWID is different for each computer. This number is shown only for illustration.
B. Using NEWID in a CREATE TABLE statement
Applies to: SQL Server
The following example creates the cust
table with a uniqueidentifier data type, and uses NEWID to fill the table with a default value. In assigning the default value of NEWID()
, each new and existing row has a unique value for the CustomerID
column.
-- Creating a table using NEWID for uniqueidentifier data type.
CREATE TABLE cust
(
CustomerID uniqueidentifier NOT NULL
DEFAULT newid(),
Company VARCHAR(30) NOT NULL,
ContactName VARCHAR(60) NOT NULL,
Address VARCHAR(30) NOT NULL,
City VARCHAR(30) NOT NULL,
StateProvince VARCHAR(10) NULL,
PostalCode VARCHAR(10) NOT NULL,
CountryRegion VARCHAR(20) NOT NULL,
Telephone VARCHAR(15) NOT NULL,
Fax VARCHAR(15) NULL
);
GO
-- Inserting 5 rows into cust table.
INSERT cust
(Company, ContactName, Address, City, StateProvince,
PostalCode, CountryRegion, Telephone, Fax)
VALUES
('Wartian Herkku', 'Pirkko Koskitalo', 'Torikatu 38', 'Oulu', NULL,
'90110', 'Finland', '981-443655', '981-443655')
,('Wellington Importadora', 'Paula Parente', 'Rua do Mercado, 12', 'Resende', 'SP',
'08737-363', 'Brasil', '(14) 555-8122', '')
,('Cactus Comidas para Ilevar', 'Patricio Simpson', 'Cerrito 333', 'Buenos Aires', NULL,
'1010', 'Argentina', '(1) 135-5555', '(1) 135-4892')
,('Ernst Handel', 'Roland Mendel', 'Kirchgasse 6', 'Graz', NULL,
'8010', 'Austria', '7675-3425', '7675-3426')
,('Maison Dewey', 'Catherine Dewey', 'Rue Joseph-Bens 532', 'Bruxelles', NULL,
'B-1180', 'Belgium', '(02) 201 24 67', '(02) 201 24 68');
GO
C. Using uniqueidentifier and variable assignment
The following example declares a local variable called @myid
as a variable of uniqueidentifier data type. Then, the variable is assigned a value by using the SET
statement.
DECLARE @myid uniqueidentifier ;
SET @myid = 'A972C577-DFB0-064E-1189-0154C99310DAAC12';
SELECT @myid;
GO
D. Query random data with the NEWID() function
The following example queries a random record from the Production.Product
table using the NEWID()
function. To query more records randomly, increase the TOP
value.
SELECT TOP 1 ProductID, Name, ProductNumber
FROM Production.Product
ORDER BY NEWID()
GO
See Also
NEWSEQUENTIALID (Transact-SQL)
ALTER TABLE (Transact-SQL)
CAST and CONVERT (Transact-SQL)
CREATE TABLE (Transact-SQL)
Data Types (Transact-SQL)
System Functions (Transact-SQL)
uniqueidentifier (Transact-SQL)
Sequence Numbers