NEWID (Transact-SQL)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Конечная точка аналитики Synapse Analyticsв Хранилище Microsoft Fabric в Microsoft Fabric

Создает уникальное значение типа uniqueidentifier.

Соглашения о синтаксисе Transact-SQL

Синтаксис

NEWID ( )  

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Примечание.

Не поддерживается в бессерверных пулах Azure Synapse.

Типы возвращаемых данных

uniqueidentifier

Замечания

NEWID() соответствует стандарту RFC4122.

Примеры

А. Использование функции NEWID с переменной

В приведенном ниже примере функция NEWID() используется для присвоения значения переменной с типом данных uniqueidentifier. Значение переменной типа данных uniqueidentifier выводится перед его проверкой.

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

Результирующий набор:

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

Примечание.

Значение, полученное с помощью функции NEWID, на разных компьютерах различается. Это число приведено только для иллюстрации.

B. Использование функции NEWID в инструкции CREATE TABLE

Применяется к: SQL Server

В приведенном ниже примере создается таблица cust с типом данных uniqueidentifier и заполняется значением по умолчанию с помощью функции NEWID. При присвоении значения функции NEWID() по умолчанию каждая новая и уже существующая строка будет иметь уникальное значение для столбца 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. Использование типа uniqueidentifier и присвоение значения переменной

В приведенном ниже примере объявляется локальная переменная типа данных uniqueidentifier с именем @myid. Затем переменной присваивается значение с помощью оператора SET.

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

D. Запрос случайных данных с помощью функции NEWID()

В следующем примере выполняется запрос случайной Production.Product записи из таблицы с помощью NEWID() функции. Чтобы запросить больше записей, увеличьте TOP значение.

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

См. также

NEWSEQUENTIALID (Transact-SQL)
Инструкция ALTER TABLE (Transact-SQL)
CAST и CONVERT (Transact-SQL)
CREATE TABLE (Transact-SQL)
Типы данных (Transact-SQL)
Системные функции (Transact-SQL)
uniqueidentifier (Transact-SQL)
Порядковые номера