在SQL Server中,我创建了一张带有ID列的表,并将其设置为自增列。
EmployeeID int NOT NULL IDENTITY(100,10) PRIMARY KEY
据我所知,当使用IDENTITY功能时,它会自动递增EmployeeID。但我不确定的是:
- 这个IDENTITY号码是否是唯一的?
- SQL是否会在表格中搜索整个列来确认所创建的数字不存在?
- 我能否手动覆盖自动递增的数字?
- 如果我手动覆盖了那个数字,输入的数字会被检查以确保它不是重复或已存在的ID号码吗?
感谢提供的任何帮助。
IDENTITY
只是从一个起始点生成新值,确保在生成时没有重复非常重要。但是IDENTITY
特性 不会 检查表中现有值是否与新生成的值唯一。 - marc_sset identity insert <tablename> on
插入特定值,但无法更改已插入的值。第二件事是,在设置 identity insert 为 on 并插入值后,必须将其设置回 off,因为在同一会话中不能同时拥有两个设置了 identity insert 的表。 - Zohar Peled