繁体   English   中英

自动增量int列BUT还允许手动输入吗? 不能使用主键

[英]Auto-increment int column BUT also allow manual input? Can't use primary key

我们的团队正在为某些组织开发新系统。 我们有一个Client表:

Id (PK), int, not null
NoClient, int, not null

组织通常通过编号NoClient来引用客户。 缓慢地,旧系统的客户端将(手动)迁移到新系统。

NoClient应该是自动递增的(对于新客户端|新系统的功能),同时允许手动输入(对于现有客户端),并且以后不会引起冲突。

从自动增量列的角度来看:

..., 9998, 9999, (used), 10001, 10002

关于如何利用SQL Server 2005(或实体框架)解决该问题的任何想法吗?

除非有更好的方法,否则可能将不得不创建一个种子表并使用存储过程(逻辑嵌入式)。

您可以尝试SET IDENTITY_INSERT ON

您的问题不是很清楚。

使布尔柱处于活动状态。 加载所有现有的false列。 然后,在迁移客户时将其打开。

至于寻找孔。

select min(tb1.PK) + 1 
from table tb1 
left outer join table tb2 
on tb2.pk = tb1.pk + 1 
where tb2.pk is null 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM