NEWID (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsPoint de terminaison analytique SQL dans Microsoft FabricEntrepôt dans Microsoft Fabric

Crée une valeur unique de type uniqueidentifier.

Conventions de la syntaxe Transact-SQL

Syntaxe

NEWID ( )  

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

Remarque

Non prise en charge dans les pools serverless Azure Synapse.

Types de retour

uniqueidentifier

Remarques

NEWID() compatible avec RFC4122.

Exemples

R. Utilisation de la fonction NEWID avec une variable

L’exemple suivant utilise NEWID() pour attribuer une valeur à une variable déclarée de type uniqueidentifier. La valeur de la variable de type uniqueidentifier est imprimée avant d’être testée.

-- Creating a local variable with DECLARE/SET syntax.  
DECLARE @myid uniqueidentifier  
SET @myid = NEWID()  
PRINT 'Value of @myid is: '+ CONVERT(varchar(255), @myid)  

Voici le jeu de résultats obtenu.

Value of @myid is: 6F9619FF-8B86-D011-B42D-00C04FC964FF  

Notes

La valeur renvoyée par NEWID est différente pour chaque ordinateur. Ce nombre est donné seulement à titre d'illustration.

B. Utilisation de NEWID dans une instruction CREATE TABLE

S’applique à : SQL Server

L’exemple suivant crée la table cust avec un type uniqueidentifier et utilise NEWID pour remplir la table avec une valeur par défaut. Lorsque vous affectez la valeur par défaut de NEWID(), chaque ligne nouvelle ou existante de la colonne CustomerID a une valeur unique.

-- 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. Utilisation de uniqueidentifier et affectation d'une variable

L’exemple suivant déclare une variable locale appelée @myid en lui attribuant le type uniqueidentifier. Une valeur est ensuite affectée à la variable à l'aide de l'instruction SET.

DECLARE @myid uniqueidentifier ;  
SET @myid = 'A972C577-DFB0-064E-1189-0154C99310DAAC12';  
SELECT @myid;  
GO  

D. Interroger des données aléatoires avec la fonction NEWID()

L’exemple suivant interroge un enregistrement aléatoire de la table Production.Product avec la fonction NEWID(). Pour interroger d’autres enregistrements de manière aléatoire, augmentez la valeur TOP.

SELECT TOP 1 ProductID, Name, ProductNumber
FROM Production.Product
ORDER BY NEWID()
GO

Voir aussi

NEWSEQUENTIALID (Transact-SQL)
ALTER TABLE (Transact-SQL)
CAST et CONVERT (Transact-SQL)
CREATE TABLE (Transact-SQL)
Types de données (Transact-SQL)
Fonctions système (Transact-SQL)
uniqueidentifier (Transact-SQL)
Numéros de séquence