否定主键

bja*_*jax 18 sql primary-key

使用表的负主键是否存在任何影响(身份增量-1,SQL Server 2005中的身份种子-1)?

原因是我们正在创建一个新的数据库来替换现有的数据库.两个数据库之间有类似的表格,我们希望信息的"来源"对我们的应用程序透明.该方法是创建从两个数据库中联合表的视图.负PK确保身份不重叠.

Hen*_*man 15

像其他人所说,数据库很好用.

但是对于使用DataSet + DataAdapter的.NET应用程序来说,这将是一个问题,因为它们使用负面密钥作为新记录的临时密钥.

其他数据访问层可能使用类似的技巧.


Not*_*tMe 7

从SQL Server的角度来看,这完全没问题.真正的问题是你的应用程序.


Lar*_*tig 5

唯一的问题是您将无法以这种方式添加第三个数据源!

  • 除非他们开始使用虚数......然后他们可以有像 1 + 2 *i* 这样的键 (17认同)

Mat*_*tin 5

您将需要查看遗留代码并查找开发人员在主键上排序的位置,作为按日期排序的懒惰/草率方式(因为标识pk通常与时间强烈或完全相关).