📅  最后修改于: 2023-12-03 15:39:51.581000             🧑  作者: Mango
在SQL Server中,可以使用标识列来自动生成唯一的数字值。当向只有标识列的表中插入数据时,可以不指定标识列的值,由系统自动生成。本文将介绍向只有标识列的表中插入数据的方法。
在SQL Server中创建只有标识列的表,需要使用IDENTITY
关键字。以下是创建只有标识列的表的示例代码:
CREATE TABLE [dbo].[SampleTable](
[ID] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
上述代码中,创建了一个名为SampleTable
的表,该表只有一个名为ID
的标识列,数据类型为int
。IDENTITY
关键字的后面的(1,1)
表示从1开始,每次递增1,自动生成唯一的数字值。
向只有标识列的表中插入数据时,可以忽略插入标识列的值。以下是插入数据到只有标识列的表中的示例代码:
INSERT INTO SampleTable DEFAULT VALUES;
INSERT INTO SampleTable DEFAULT VALUES;
上述代码中,插入了两条数据到SampleTable
表中。由于该表只有一个标识列,所以在插入数据时不需要指定标识列的值。系统会自动生成唯一的数字值,作为插入的数据的标识列的值。
在向只有标识列的表中插入数据后,如果需要获取自动生成的标识列的值,可以使用@@IDENTITY
或SCOPE_IDENTITY()
函数。以下是获取自动生成的标识列的值的示例代码:
INSERT INTO SampleTable DEFAULT VALUES;
SELECT @@IDENTITY AS [IdentityValue];
SELECT SCOPE_IDENTITY() AS [IdentityValue];
上述代码中,插入了一条数据到SampleTable
表中,并使用SELECT
语句获取自动生成的标识列的值。@@IDENTITY
函数返回最近生成的自增值,而SCOPE_IDENTITY()
函数返回当前作用域(即当前会话)中最近生成的自增值。