自增SQL Server中ID自增的应用(sqlserver的id)
以前,由于SQL Server中ID自增,开发者必须担心数据库中ID的唯一性,大多数情况下,为了确保唯一性,往往被迫使用GUID来表示实体,但是由于GUID很大,使用它会增加查询的开销,大大影响查询性能。但是有了SQL Server中ID自增,问题就得以解决。
SQL Server中ID自增能够让一个字段随着每一次插入而自动增加,一般情况下,ID自动增长将只会存在一列,集合该列的数值就是所有的ID的唯一性。
下面介绍一下在SQL Server中ID自增的应用,两种情况:
1、利用Identity
Identity(标识)是SQL Server中的一个特性,Identity可以自动在一个字段上生成唯一的值。例如:
CREATE TABLE Product
(
ProductId int Identity(1,1) PRIMARY KEY,
ProductName varchar(50)
)
在上面的代码中,声明ProductId字段为自增字段,每次插入一条数据自动增加1,当添加新行时无需指定ProductId,ProductId列会自动分配下一个唯一值:
INSERT INTO Product(ProductName)
VALUES (‘Headphone’)
INSERT INTO Product(ProductName)
VALUES (‘Mouse’)
2、使用Sequence
Sequence是SQL Server 2012及以上版本的新特性,用于生成递增的序列号。以下是生成一个可以重复使用的序列号(从1开始自增1)的应用:
CREATE SEQUENCE dbo.ProductSeq
START WITH 1
INCREMENT BY 1
可以将Sequence应用于表中,也可以应用于存储过程中:
CREATE TABLE Product
(
ProductId int PRIMARY KEY,
ProductName varchar(50)
)
INSERT INTO Product(ProductId,ProductName)
VALUES(NEXT VALUE FOR dbo.ProductSeq,’Headphone’)
INSERT INTO Product(ProductId,ProductName)
VALUES(NEXT VALUE FOR dbo.ProductSeq,’Mouse’)
总结
以上介绍了如何使用SQL Server ID自增功能实现唯一ID,由于ID自增可以极大简化开发工作,现在就被广泛应用在各类应用程序中,希望上面的示例对开发者有所协助。