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