SQL Server NEWID() 函数使用指南

NEWID() 函数是 SQL Server 中用于生成全球唯一标识符(GUID)的函数之一。GUID 是一个 128 位的数字,用于在计算机系统中唯一标识某个实体。NEWID() 函数可以返回一个新的 GUID 值,该值由一组随机生成的数字和字母组成。

语法

NEWID() 函数的语法非常简单,如下所示:

NEWID();

使用场景

NEWID() 函数通常用于在 SQL Server 数据库中生成唯一标识符,这些标识符可以在不同的表格和系统之间进行传递和比较。以下是 NEWID() 函数的一些常见使用场景:

  • 创建唯一标识符列
  • 生成随机的密码和令牌
  • 创建独一无二的数据行

示例

下面是两个使用 NEWID() 函数的示例。

示例 1:创建唯一标识符列

假设有一个名为 User 的表格,我们需要向该表格中添加一个新的唯一标识符列。我们可以使用 NEWID() 函数来为该列生成唯一的 GUID 值。下面是完整的示例代码:

CREATE TABLE User
(
    ID UNIQUEIDENTIFIER DEFAULT NEWID() PRIMARY KEY,
    Name VARCHAR(50) NOT NULL
);

INSERT INTO User (Name)
VALUES
('Tom Smith'),
('Mary Johnson'),
('David Lee'),
('Alex Chen');

SELECT * FROM User;

在这个示例中,我们首先创建了一个名为 User 的表格,并使用 NEWID() 函数为 ID 列添加默认值。这意味着每当我们向 User 表格中插入一条新数据时,都会为 ID 列自动生成一个新的 GUID 值。我们向 User 表格中添加了一些样例数据,然后使用 SELECT 语句来查询 User 表格中的所有数据。

执行上述代码后,得到以下结果:

ID                                    Name
------------------------------------ ----------
AFB3EE0B-41D6-4F9E-B2D8-36C0D1DBD473 Tom Smith
C0E044B4-4C1A-4C9E-9D6D-7A050A3645ED Mary Johnson
CE2E50ED-FFAE-4132-9E9F-3A3A5BC7CB0A David Lee
A7A1F97B-4F4F-4F6E-8A0F-7A5B5D5B7B5E Alex Chen

在上述结果中,我们可以看到 ID 列包含自动生成的唯一标识符值。

示例 2:生成随机的密码和令牌

假设我们需要为用户生成随机的密码和令牌,我们可以使用 NEWID() 函数来生成唯一的标识符。以下是一个示例,演示如何使用 NEWID() 函数生成随机的密码和令牌:

创建一个名为 Users 的表格,包含 Id、Username、Password 和 Token 列:

CREATE TABLE Users (
  Id INT PRIMARY KEY,
  Username NVARCHAR(50),
  Password NVARCHAR(50),
  Token UNIQUEIDENTIFIER
);

插入一些样例数据:

INSERT INTO Users (Id, Username) VALUES (1, 'user1');
INSERT INTO Users (Id, Username) VALUES (2, 'user2');
INSERT INTO Users (Id, Username) VALUES (3, 'user3');

更新 Password 和 Token 列,使用 NEWID() 函数生成唯一的标识符:

UPDATE Users
SET Password = CAST(NEWID() AS NVARCHAR(50)),
    Token = NEWID()
WHERE Id = 1;

UPDATE Users
SET Password = CAST(NEWID() AS NVARCHAR(50)),
    Token = NEWID()
WHERE Id = 2;

UPDATE Users
SET Password = CAST(NEWID() AS NVARCHAR(50)),
    Token = NEWID()
WHERE Id = 3;

查询表格,查看生成的密码和令牌

SELECT * FROM Users;

在上面的示例中,我们创建了一个名为 Users 的表格,并向其添加了一些样例数据。然后,我们使用 NEWID() 函数更新了 PasswordToken 列,将它们设置为随机生成的唯一标识符。最后,我们查询了表格,查看生成的密码和令牌。

结论

NEWID() 函数是一个非常有用的函数,可以用来生成唯一的标识符。在许多场景下,唯一标识符都是非常重要的,比如在数据库中创建唯一的键值、生成随机密码和令牌等等。NEWID() 函数的语法非常简单,可以很容易地使用它来生成唯一的标识符。