SQL身份增量和种子

Mah*_*asi 3 c# sql sql-server sql-server-2005

我正在使用Microsoft SQL Server我的数据库.

我的表中有一个ID列.在我的使用中,行被删除并重新创建多次.因此,如果我使用SQL Server的身份增量和身份种子,一段时间后ID号会非常大......

每个新行的ID都大于其他行并不重要.它必须是独一无二的.

如何在SQL Server中执行此操作?我应该禁用自动增量并手动设置ID吗?怎么样?

我正在使用C#和SQL Server Express.

Aar*_*and 7

我不确定你为什么关心数字是大还是小(希望用户没有感情价值或对身份价值有任何意义),但避免用尽问题的一种方法是使用BIGINT.我忘记了确切的数字,但是如果你每秒生成1000个ID就需要80年左右才能达到极限 - 如果从负边界开始,你可以加倍.是BIGINT是8个字节而不是4个字节但是它仍然比GUID小得多且可用.如果你将它与数据压缩相结合,那么在你使用了20亿个数字之后,你将不再需要任何存储而不是INT.

不要过度设计这一点,也不要误认为身份值的大小或值应该意味着什么.这是仅为内部识别和效率生成的替代值.如果你告诉用户这个价值,那就不对了.