分享方式:


NEWID (Transact-SQL)

適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Microsoft Fabric 中的 SQL 分析端點 Microsoft Fabric 中的倉儲

建立類型為 uniqueidentifier 的唯一值。

Transact-SQL 語法慣例

Syntax

NEWID ( )  

注意

Azure Synapse 無伺服器集區不予支援。

傳回型別

uniqueidentifier

備註

NEWID() 符合 RFC4122。

範例

A. 搭配變數使用 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. 在 CREATE TABLE 陳述式中使用 NEWID

適用於:SQL Server

下列範例會建立 uniqueidentifier 資料類型的 cust 資料表,且使用 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 和變數指派

下列範例將稱為 @myid 的區域變數宣告成 uniqueidentifier 資料類型的變數。 之後,再利用 SET 陳述式來指派變數值。

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

D. 使用 NEWID() 函數來查詢隨機資料

下列範例會使用 NEWID() 函數,以從 Production.Product 資料表中查詢隨機記錄。 若要隨機查詢更多記錄,請增加 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)
序號