SQLServer函数NEWID创建 uniqueidentifier 类型的唯一值

SQLServer函数NEWID创建 uniqueidentifier 类型的唯一值

适用于:

  • SQL Server
  • Azure SQL 数据库
  • Azure SQL 托管实例
  • Azure Synapse Analytics
  • Microsoft Fabric 中的 SQL 分析终结点
  • Microsoft Fabric 中的仓库

1、语法

NEWID ( )

2、返回类型

uniqueidentifier

3、注解

NEWID() 遵从 RFC4122。

4、示例

4.1、对变量使用 NEWID 函数

以下示例使用 NEWID() 对声明为 uniqueidentifier 数据类型的变量赋值。 在测试 uniqueidentifier 数据类型变量的值之前,先打印该值。

-- Creating a local variable with DECLARE/SET syntax.  
DECLARE @mynewid uniqueidentifier  
SET @mynewid = NEWID()  
PRINT 'Value of @mynewid is: '+ CONVERT(varchar(255), @mynewid)
-- 返回执行结果
Value of @mynewid is: 32B54C64-F697-4113-9C54-EB81AECC22BC

完成时间: 2024-12-02T20:18:34.3360828+08:00

备注:NEWID 对每台计算机返回的值各不相同。 所显示的数字仅起解释说明的作用。

4.2、在 CREATE TABLE 语句中使用 NEWID

适用于:SQL Server
以下示例创建数据类型为 uniqueidentifier 的 cust 表,并使用 NEWID 作为默认值填充该表。 为 NEWID() 赋予默认值时,每个新行和现有行均对 CustomerID 列具有唯一值。

-- Creating a table using NEWID for uniqueidentifier data type.  
CREATE TABLE t_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 t_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

SELECT * FROM t_cust;
-- 返回执行结果
CustomerID                           Company                        ContactName                                                  Address                        City                           StateProvince PostalCode CountryRegion        Telephone       Fax
------------------------------------ ------------------------------ ------------------------------------------------------------ ------------------------------ ------------------------------ ------------- ---------- -------------------- --------------- ---------------
57F405B0-DAF0-46F4-8DC4-F97714D29B59 Wartian Herkku                 Pirkko Koskitalo                                             Torikatu 38                    Oulu                           NULL          90110      Finland              981-443655      981-443655
147D7E0A-56BB-4472-AF5A-962E4EFEDB78 Wellington Importadora         Paula Parente                                                Rua do Mercado, 12             Resende                        SP            08737-363  Brasil               (14) 555-8122   
294817E2-8475-4016-9154-C125A6AE3B61 Cactus Comidas para Ilevar     Patricio Simpson                                             Cerrito 333                    Buenos Aires                   NULL          1010       Argentina            (1) 135-5555    (1) 135-4892
D8D098EF-2F0B-45A4-AEED-8CDD0BB25D42 Ernst Handel                   Roland Mendel                                                Kirchgasse 6                   Graz                           NULL          8010       Austria              7675-3425       7675-3426
6DB18463-4E8F-4C05-862C-61054A9792EF Maison Dewey                   Catherine Dewey                                              Rue Joseph-Bens 532            Bruxelles                      NULL          B-1180     Belgium              (02) 201 24 67  (02) 201 24 68

(5 行受影响)

4.3、使用 uniqueidentifier 和变量赋值

以下示例将名为 @mynewid 的局部变量声明为 uniqueidentifier 数据类型的变量。 然后使用 SET 语句为该变量赋值。

DECLARE @mynewid uniqueidentifier ;  
SET @mynewid = 'BBE43597-0B14-43FA-91A2-0FEBE2303CC8';  
SELECT @mynewid AS mynewid;  
GO
-- 返回执行结果
mynewid
------------------------------------
BBE43597-0B14-43FA-91A2-0FEBE2303CC8

(1 行受影响)

4.4、使用 NEWID() 函数查询随机数据

以下示例使用 NEWID() 函数从 Production.Product 表中查询随机记录。 若要随机查询更多记录,请增加 TOP 值。

SELECT TOP 1 ProductID, Name, ProductNumber
FROM Production.Product
ORDER BY NEWID()
GO
-- 返回执行结果,第一次查询
ProductID   Name                                               ProductNumber
----------- -------------------------------------------------- -------------------------
747         HL Mountain Frame - Black, 38                      FR-M94B-38

(1 行受影响)
-- 返回执行结果,第二次查询
ProductID   Name                                               ProductNumber
----------- -------------------------------------------------- -------------------------
415         Internal Lock Washer 5                             LI-1400

(1 行受影响)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值