在只需要 1 列作为键且该列中的值可以为整数的表中,何时不应使用标识字段?
相反,在同一个表和列中,您什么时候会手动生成其值并且不会为每条记录使用自动生成的值?
我猜当表中有大量插入和删除时就会出现这种情况。我对吗?还有哪些其他情况?
最佳答案
如果您已经选择 Great Primary Key Debacle 的代理方那么我找不到不使用身份 key 的单一原因。通常的替代方案是 guid(它们有很多缺点,主要是大小和随机性)和应用程序层生成的 key 。但是在应用程序层中创建代理键比看起来要困难一些,而且也不涵盖非应用程序相关的数据访问(即批量加载、导入、其他应用程序等)。一种特殊情况是分布式应用程序,此时 guid 甚至顺序 guid 可以提供站点 id + 身份 key 的更好替代方案。
关于sql-server - 当拥有身份列不是一个好主意时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/932913/