我正在将数据保存到表中,但我还需要一个带有序列号的列。我怎么做? (我在C#中这样做,也许很重要。)
这一定非常简单,但谷歌搜索并没有成功。
编辑:我不想只保存一个整数。我想给SQL一个命令来保存时创建它,因为如果我创建一个整数并在创建它并保存它之间保存它 - 另一个查询可能会尝试同时保存相同的数字,我会得到两个条目用相同的数字。)
答案 0 :(得分:9)
使用IDENTITY
:
CREATE TABLE YourTable
(
ID INT IDENTITY
)
每次插入新记录时,SQL Server都会为您增加此值(没有两个记录具有相同的编号,它是唯一的)。
答案 1 :(得分:1)
最好的方法不是编程方法,而是让数据库自动创建递增字段。在SQL Server中,这称为identity列。
在您的insert语句中,您只需跳过该列,就像它不存在一样,但SQL Server会自动递增并为您填充。
答案 2 :(得分:1)
Uniqueidentifier解决了这个问题,但它不具有可伸缩性,该列不适合创建聚簇索引,因为生成的索引非常大,并且它的值不会总是增加(对定义良好的聚簇索引的限制)。
关键字IDENTITY非常合适,你可以根据你的需要选择整数数据类型(smallint,int,bigint ...)你可以通过函数scope_identity()
安全地获得最后一个值。答案 3 :(得分:0)
使用sql中提供的IDENTITY
。以下是示例
CREATE TABLE Persons
(
P_Id int PRIMARY KEY IDENTITY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
答案 4 :(得分:0)
将序列号定义为主键NOT NULL和自动递增。希望这对你有所帮助。
答案 5 :(得分:0)
您如何看待在SQL Server中使用GUID(又名UNIQUEIDENTIFIER数据类型)?
DECLARE @myid uniqueidentifier = NEWID();
SELECT @myid