Udostępnij za pośrednictwem


NEWID (Transact-SQL)

Dotyczy:sql ServerAzure SQL DatabaseAzure SQL Managed Instancepunkt końcowy usługi Azure Synapse AnalyticsSQL Analytics w usłudze Microsoft FabricWarehouse w usłudze Microsoft Fabric

Tworzy unikatową wartość typu uniqueidentifier.

Transact-SQL konwencje składni

Składnia

NEWID ( )  

Typy zwracane

uniqueidentifier

Uwagi

NEWID() jest zgodny z RFC4122.

Przykłady

A. Używanie funkcji NEWID ze zmienną

W poniższym przykładzie użyto NEWID() do przypisania wartości do zmiennej zadeklarowanej jako uniqueidentifier typu danych. Wartość uniqueidentifier zmienna typu danych jest drukowana przed przetestowaniem wartości.

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

Oto zestaw wyników.

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

Nuta

Wartość zwracana przez NEWID() jest inna dla każdego komputera. Ta liczba jest wyświetlana tylko dla ilustracji.

B. Używanie identyfikatora NEWID w instrukcji CREATE TABLE

dotyczy: SQL Server

Poniższy przykład tworzy tabelę cust z unikatowym typem danych unikatowym identyfikatorem i używa NEWID() do wypełnienia tabeli wartością domyślną. W przypisaniu wartości domyślnej NEWID()każdy nowy i istniejący wiersz ma unikatową wartość dla kolumny 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. Używanie atrybutu uniqueidentifier i przypisania zmiennych

Poniższy przykład deklaruje zmienną lokalną o nazwie @myid jako zmienną unikatowego typu danych. Następnie zmienna ma przypisaną wartość przy użyciu instrukcji SET.

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

D. Wykonywanie zapytań dotyczących losowych danych za pomocą funkcji NEWID()

Poniższy przykład wykonuje zapytanie dotyczące rekordu losowego z tabeli Production.Product przy użyciu funkcji NEWID(). Aby losowo wykonywać zapytania dotyczące większej liczby rekordów, zwiększ wartość TOP.

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