什么是数据库流水号自增序列
数据库流水号自增序列是指将数据表中某一列设置为自动增长的字段,每当插入新数据行时,该列会自动递增,便于查询数据的唯一标识符。在SQL Server中,我们可以通过设置IDENTITY属性来创建数据库流水号自增序列。
创建数据库流水号自增序列
通过SSMS创建
我们可以通过SQL Server Management Studio(简称SSMS)图形化界面来创建数据库流水号自增序列。以下是创建方式:
在Object Explorer中选择你的数据库,右键单击“Tables”文件夹,选择“New Table”
在表格设计器中,在你需要设置为流水号的列中,右键单击,在弹出的菜单中选择“Identity Specification”
将IsIdentity设置为“Yes”,可以设置Identity Increment,代表每次递增的值,也可以设置Identity Seed,代表起始值,如下图所示:
-- 创建示例表
CREATE TABLE DemoTable
(
DemoTableId INT IDENTITY (1, 1) PRIMARY KEY,
Column1 VARCHAR(50) NULL,
Column2 INT NULL
)
通过T-SQL语句创建
可以使用T-SQL语句来创建流水号自增序列。
-- 创建流水号自增序列
CREATE TABLE DemoTable
(
DemoTableId INT IDENTITY (1, 1) PRIMARY KEY,
Column1 VARCHAR(50) NULL,
Column2 INT NULL
)
流水号批量填充
在某些情况下,我们需要手动填充一列的流水号,特别是在数据迁移或导入数据时更为常见。
方法一:SET IDENTITY_INSERT ON
在填充数据的时候,我们需要关闭IDENTITY属性,防止自动递增。
-- 关闭IDENTITY属性
SET IDENTITY_INSERT DemoTable ON
-- 手动插入编号
INSERT INTO DemoTable (DemoTableId, Column1,Column2)
VALUES (1, 'A',1)
-- 开启IDENTITY属性
SET IDENTITY_INSERT DemoTable OFF
方法二:使用序列值更新表格
我们可以通过将序列值添加到一个临时表格中,然后使用UPDATE更新表格的方式来批量填充流水号。
以下演示了如何通过序列值更新表格。
-- 创建临时表格用于存储序列值
CREATE TABLE #Tmp
(
RowId INT IDENTITY (1, 1) PRIMARY KEY,
DemoTableId INT
)
-- 向DmeoTable临时表格插入数据,这里是模拟数据,用户需要使用实际数据
INSERT INTO #Tmp (DemoTableId)
VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10)
--更新DemoTable中的DemoTableId列
UPDATE DemoTable
SET DemoTableId = Tmp.DemoTableId
FROM DemoTable INNER JOIN #Tmp Tmp ON DemoTable.RowId = Tmp.RowId
-- 删除临时表格
DROP TABLE #Tmp;
总结
通过IDENTITY属性,可以很方便地创建SQL Server数据库流水号自增序列,并且通过批量填充的两种方式,可以更加高效地完成数据填充操作。