NEWID (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsPunto de conexión de análisis SQL en Microsoft FabricAlmacenamiento en Microsoft Fabric

Crea un valor único del tipo uniqueidentifier.

Convenciones de sintaxis de Transact-SQL

Sintaxis

NEWID ( )  

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Nota:

No es compatible con los grupos sin servidor de Azure Synapse.

Tipos de valor devuelto

uniqueidentifier

Comentarios

NEWID() es compatible con RFC4122.

Ejemplos

A. Utilizar la función NEWID con una variable

En el siguiente ejemplo se usa NEWID() para asignar un valor a una variable declarada con el tipo de datos uniqueidentifier. El valor de la variable de tipo uniqueidentifier se imprime antes de ser comprobado.

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

El conjunto de resultados es el siguiente:

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

Nota

El valor que devuelve NEWID es distinto en cada equipo. Este número solo se indica a título ilustrativo.

B. Utilizar NEWID en una instrucción CREATE TABLE

Se aplica a: SQL Server

En el siguiente ejemplo se crea una tabla cust con un tipo de datos uniqueidentifier y se usa NEWID para llenarla con un valor predeterminado. Al asignar como valor predeterminado NEWID(), cada fila nueva y existente tendrá un valor único en la columna 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. Utilizar uniqueidentifier y la asignación de variable

En este ejemplo se declara una variable local denominada @myid como variable del tipo de datos uniqueidentifier. A continuación, se asigna un valor a la variable con la instrucción SET.

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

D. Consulta de datos aleatorios con la función NEWID()

En el ejemplo siguiente se consulta un registro aleatorio de la tabla Production.Product mediante la función NEWID(). Para consultar más registros de forma aleatoria, incremente el valor TOP.

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

Vea también

NEWSEQUENTIALID (Transact-SQL)
ALTER TABLE (Transact-SQL)
CAST y CONVERT (Transact-SQL)
CREATE TABLE (Transact-SQL)
Tipos de datos (Transact-SQL)
Funciones del sistema (Transact-SQL)
uniqueidentifier (Transact-SQL)
Números de secuencia