Dela via


NEWID (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL-analysslutpunkt i Microsoft FabricWarehouse i Microsoft Fabric

Skapar ett unikt värde av typen unikidentifierare.

Transact-SQL syntaxkonventioner

Syntax

NEWID ( )  

Returtyper

unikidentifierare

Anmärkningar

NEWID() är kompatibel med RFC4122.

Exempel

A. Använda funktionen NEWID med en variabel

I följande exempel används NEWID() för att tilldela ett värde till en variabel som deklarerats som unikidentifierare datatyp. Värdet för variabeln unikidentifierare datatyp skrivs ut innan värdet testas.

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

Här är resultatuppsättningen.

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

Not

Värdet som returneras av NEWID() skiljer sig åt för varje dator. Det här talet visas bara för bild.

B. Använda NEWID i en CREATE TABLE-instruktion

gäller för: SQL Server

I följande exempel skapas tabellen cust med en unikidentifierare datatyp och använder NEWID() för att fylla tabellen med ett standardvärde. När du tilldelar standardvärdet för NEWID()har varje ny och befintlig rad ett unikt värde för kolumnen 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. Använda unikidentifierare och variabeltilldelning

I följande exempel deklareras en lokal variabel med namnet @myid som en variabel av unikidentifierare datatyp. Sedan tilldelas variabeln ett värde med hjälp av instruktionen SET.

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

D. Köra frågor mot slumpmässiga data med funktionen NEWID()

I följande exempel efterfrågas en slumpmässig post från tabellen Production.Product med hjälp av funktionen NEWID(). Om du vill köra frågor mot fler poster slumpmässigt ökar du värdet för TOP.

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