SQL: 如何在 SQL Server 中添加新的标识列并将列填充为标识

SQL: 如何在 SQL Server 中添加新的标识列并将列填充为标识

在本文中,我们将介绍如何在 SQL Server 中添加新的标识列,并将该列填充为唯一的标识值。

阅读更多:SQL 教程

什么是标识列?

标识列是在插入新行时自动增加和分配唯一的数字值的列。它通常用作主键,用于唯一标识每个行。

添加新的标识列

要在 SQL Server 中添加新的标识列,我们可以使用 ALTER TABLE 语句以及 ADDIDENTITY 关键字。下面是添加标识列的语法:

ALTER TABLE 表名
ADD 列名 数据类型 IDENTITY(起始值, 增量)

其中,表名 是要添加新列的表的名称,列名 是要添加的列的名称,数据类型 是列的数据类型(例如,整数、bigint 等),起始值 是标识列要从哪个数字开始计数的值,增量 是标识列要递增的值。

让我们看一个具体的示例。假设我们有一个名为 Customers 的表,它包含 CustomerIDFirstNameLastName 列。现在我们要添加一个新的标识列 ID 并将其填充为唯一的标识值。我们可以使用以下 SQL 语句:

ALTER TABLE Customers
ADD ID INT IDENTITY(1,1)

以上语句将向 Customers 表中添加一个名为 ID 的新列,并将其数据类型设置为整数。它还使用 IDENTITY(1,1) 指定了起始值为1,增量为1,以便自动分配唯一的标识值。

填充标识列

在添加了新的标识列之后,我们可以使用 UPDATE 语句将其填充为唯一的标识值。下面是填充标识列的语法:

UPDATE 表名
SET 标识列名 = 列名 = 下一个标识值

让我们使用前面的 Customers 表为例,将新添加的 ID 列填充为唯一的标识值。我们可以使用以下 SQL 语句:

UPDATE Customers
SET ID = (SELECT MAX(ID) FROM Customers) + ROW_NUMBER() OVER (ORDER BY CustomerID)

以上语句将 ID 列设置为 MAX(ID) + ROW_NUMBER() OVER (ORDER BY CustomerID),其中 ROW_NUMBER() 函数将分配一个连续的、唯一的标识值。

示例说明

假设我们有以下的 Customers 表:

CustomerID FirstName LastName
1 John Doe
2 Jane Smith
3 David Johnson

我们想要添加一个新的标识列 ID 并将其填充为唯一的标识值。我们可以使用以上提到的 SQL 语句来实现:

ALTER TABLE Customers
ADD ID INT IDENTITY(1,1)

UPDATE Customers
SET ID = (SELECT MAX(ID) FROM Customers) + ROW_NUMBER() OVER (ORDER BY CustomerID)

执行以上语句后,Customers 表将变为:

CustomerID FirstName LastName ID
1 John Doe 1
2 Jane Smith 2
3 David Johnson 3

新的标识列 ID 已成功添加,并填充为唯一的标识值。

总结

在本文中,我们学习了如何在 SQL Server 中添加新的标识列,并将其填充为唯一的标识值。通过使用 ALTER TABLEADD 语句来添加新列,然后使用 UPDATE 语句来填充标识列,我们可以轻松地实现这个目标。标识列是在插入新行时自动增加和分配唯一的数字值的列,通常用作主键。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程