SQL Server中identity(自增)的用法详解
在SQL Server中,自增列(identity)是一个非常常用的功能。本文将详细讲解如何在表中定义自增列,并提供一些示例以便更好地理解该功能。
定义自增列
要创建自增列,可以通过使用IDENTITY
关键字在表定义中指定列属性。IDENTITY
的值是从引入记录的第一个插入操作中生成,并且逐步递增。下面是一个示例:
CREATE TABLE Persons (
ID INT IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age INT
);
在上面的示例中,ID
列是自增列。在插入任何记录时,不需要为该列提供值。此外,由于该列是主键,因此自动随着插入递增并保持唯一性。
使用IDENTITY
关键字时,您还可以指定起始值和递增量。例如,IDENTITY(1,1)
表示从1开始,递增量为1。
插入记录
在插入记录时,您不需要指定值,自增列将自动接管并生成相应的唯一值。以下是一个示例:
INSERT INTO Persons (LastName, FirstName, Age)
VALUES ('Doe', 'John', 25);
在上面的示例中,由于未在插入语句中提供ID
值,因此该列将自动赋为下一个可用的自增值。
检索自增值
有两种方法可以检索包含自增值的列的值。首先,您可以插入记录,然后使用SCOPE_IDENTITY()
函数返回最后插入的自增值。以下是一个示例:
INSERT INTO Persons (LastName, FirstName, Age)
VALUES ('Doe', 'Jane', 22);
SELECT SCOPE_IDENTITY() as LastInsertID;
在上面的示例中,SCOPE_IDENTITY()
函数将返回最后插入记录的ID
值。
另一种方法是使用OUTPUT
语句在插入记录时返回自增列的值。以下是一个示例:
DECLARE @InsertedRows TABLE (ID INT);
INSERT INTO Persons (LastName, FirstName, Age)
OUTPUT INSERTED.ID INTO @InsertedRows
VALUES ('Doe', 'Jane', 22);
SELECT ID from @InsertedRows;
在上面的示例中,使用OUTPUT
语句将插入的ID
值存储在一个表变量中,并且可以使用SELECT语句检索该值。
结论
自增列(identity)是SQL Server中非常重要的一个功能,它可以自动为记录生成唯一值,省去了手动创建和维护唯一标识符的工作。在表定义中使用IDENTITY
关键字非常简单,而且在插入记录时,自增列可以非常方便地返回自动创建的唯一值。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SQL Server中identity(自增)的用法详解 - Python技术站