NEWID (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsMicrosoft Fabric の SQL 分析エンドポイントMicrosoft Fabric のウェアハウス

uniqueidentifier 型の一意の値を作成します。

Transact-SQL 構文表記規則

構文

NEWID ( )  

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

Note

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  

Note

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)
シーケンス番号