我创建了4个表:
`Patient` (Id, Name, ..)
`Donor` (Id, Name, ..)
`BloodBank` (Id, Name, ..)
BloodBankDonors(DonorId, BloodBankId, ..)
并将Id列设置为Identity增加1,种子1.并在(Donor,BloodBank)和(BloodBankDonors)之间建立关系。 问题是当我在BloodBank和患者表中输入一些数据时,自动生成的Id栏分别为:1,3,4和1,4,5,8?
答案 0 :(得分:1)
如此多的事情可能会导致IDENTITY列出现空白,例如回滚未重置IDENTITY,删除等。
那么,你为什么要关心差距呢?你不应该。如果您需要连续的数字序列,请停止使用IDENTITY。
谢谢...
答案 1 :(得分:0)
从表中删除数据包含日志信息保存ID(自动生成的列)以进行恢复。
尝试截断表并重新输入数据
x <-
id1 id2 val1 val2 val3 val4
1 a x 1 9
2 a x 2 4
3 a y 3 5
4 a y 4 9
5 b x 1 7
6 b y 4 4
7 b x 3 9
8 b y 2 8
愿这个帮助
答案 2 :(得分:0)
您可能会删除(删除命令)表“BloodBank”和“patient”中的某些记录。从表中删除记录包含用于恢复目的的列ID(自动生成列)的日志信息。而是在“DELETE”命令之后使用下面提到的代码片段:
DBCC CHECKIDENT('databasename.dbo.tablename', RESEED, number)
if number=0 then in the next insert the auto increment field will contain value 1
if number=101 then in the next insert the auto increment field will contain value 102.
要获得更明确的答案,请分享您用来创建表格和插入记录的sql脚本。