我有一张桌子,我想让它的每人指定ID
这是我到目前为止所拥有的:
CREATE TABLE [dbo].[Duiken] (
[Duik_nr] INT IDENTITY (1, 1) NOT NULL, // ID
[datum] DATE NULL,
[naam] VARCHAR (50) NOT NULL, // Person
[buddy] VARCHAR (50) NULL,
[locatie] VARCHAR (50) NULL,
[zicht] INT NULL,
[lucht_temp] INT NULL,
[water_temp] INT NULL,
[fles_Groote] VARCHAR (50) NULL,
[duik_tijd] INT NULL,
[max_duik_diepte] INT NULL,
[lucht_in] INT NULL,
[lucht_uit] INT NULL,
[lucht_verbruik] AS ([lucht_in]-[lucht_uit]),
[lood] INT NULL,
[oefenduik] BIT NULL,
[recreatieve_duik] BIT NULL,
[zoetwater_duik] BIT NULL,
[zoutwater_duik] BIT NULL,
[stilstaand_water] BIT NULL,
[stromend_water] BIT NULL,
[nacht_duik] BIT NULL,
[nitrox_duik] BIT NULL,
[zonnig] BIT NULL,
[bewolkt] BIT NULL,
[regen] BIT NULL,
[Opmerkingen] VARCHAR (MAX) NULL,
PRIMARY KEY ([naam],[Duik_nr])
);
但是当我以新名称添加新记录时,它会继续使用表中的最高 ID。
所以“测试”者也应该以 ID 1 开头,而不是 53。
类似这样的:
+----+-----+ |编号 |名称 | +----+------+ | 1 |一个 | | 2 |一个 | | 1 |乙| | 3 |一个 | | 1 | c | | 2 |乙| +----+------+
Identity(1, 1) 创建一个 AUTO_INCRMENT 字段。如果“test”人员以 ID1 开头,那么“test”和“Tim”之间将会发生冲突,因为您将 [Duik_nr] 定义为主键(不能有重复的值)。所有主键的每个值只能有一个实例。这就是为什么您会收到 (2, TIM) 已存在的错误。表中已存在 ID 2 和名称“Tim”。
我相信您之前有记录或者您的身份种子设置为更高的数字,因此 AUTO_INCRMENT 将从更高的数字开始。