📜  插入到只有标识列的表中 - SQL (1)

📅  最后修改于: 2023-12-03 15:39:51.581000             🧑  作者: Mango

向只有标识列的表中插入数据 - SQL

在SQL Server中,可以使用标识列来自动生成唯一的数字值。当向只有标识列的表中插入数据时,可以不指定标识列的值,由系统自动生成。本文将介绍向只有标识列的表中插入数据的方法。

创建只有标识列的表

在SQL Server中创建只有标识列的表,需要使用IDENTITY关键字。以下是创建只有标识列的表的示例代码:

CREATE TABLE [dbo].[SampleTable](
	[ID] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]

上述代码中,创建了一个名为SampleTable的表,该表只有一个名为ID的标识列,数据类型为intIDENTITY关键字的后面的(1,1)表示从1开始,每次递增1,自动生成唯一的数字值。

插入数据到只有标识列的表中

向只有标识列的表中插入数据时,可以忽略插入标识列的值。以下是插入数据到只有标识列的表中的示例代码:

INSERT INTO SampleTable DEFAULT VALUES;
INSERT INTO SampleTable DEFAULT VALUES;

上述代码中,插入了两条数据到SampleTable表中。由于该表只有一个标识列,所以在插入数据时不需要指定标识列的值。系统会自动生成唯一的数字值,作为插入的数据的标识列的值。

获取自动生成的标识列的值

在向只有标识列的表中插入数据后,如果需要获取自动生成的标识列的值,可以使用@@IDENTITYSCOPE_IDENTITY()函数。以下是获取自动生成的标识列的值的示例代码:

INSERT INTO SampleTable DEFAULT VALUES;
SELECT @@IDENTITY AS [IdentityValue];
SELECT SCOPE_IDENTITY() AS [IdentityValue];

上述代码中,插入了一条数据到SampleTable表中,并使用SELECT语句获取自动生成的标识列的值。@@IDENTITY函数返回最近生成的自增值,而SCOPE_IDENTITY()函数返回当前作用域(即当前会话)中最近生成的自增值。