Condividi tramite


NEWID (Transact-SQL)

Si applica a:SQL Serverdatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsEndpoint di analisi SQL in Microsoft FabricWarehouse in Microsoft Fabric

Crea un valore univoco di tipo uniqueidentifier.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

NEWID ( )  

Tipi restituiti

uniqueidentifier

Osservazioni:

NEWID() è conforme a RFC4122.

Esempi

R. Utilizzo della funzione NEWID con una variabile

Nell'esempio seguente viene usata NEWID() per assegnare un valore a una variabile dichiarata con il tipo di dati uniqueidentifier. Il valore della variabile di tipo uniqueidentifier viene stampato prima di essere verificato.

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

Il set di risultati è il seguente.

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

Nota

Il valore restituito da NEWID() è diverso per ogni computer. Il valore riportato è solo a scopo illustrativo.

B. Utilizzo di NEWID in un'istruzione CREATE TABLE

Si applica a: SQL Server

L'esempio seguente crea la tabella cust con un tipo di dati uniqueidentifier e usa NEWID() per riempire la tabella con un valore predefinito. Quando si assegna il valore predefinito con NEWID(), tutte le righe, esistenti e nuove, contengono un valore univoco nella colonna CustomerID.

-- 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. Utilizzo dell'assegnazione di variabili e del tipo uniqueidentifier

Nell'esempio seguente viene dichiarata una variabile locale denominata @myid come variabile di tipo uniqueidentifier. Alla variabile viene quindi assegnato un valore mediante l'istruzione SET.

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

D. Eseguire query su dati casuali con la funzione NEWID()

Nell'esempio seguente viene eseguita una query su un record casuale dalla Production.Product tabella usando la NEWID() funzione . Per eseguire query su più record in modo casuale, aumentare il TOP valore.

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