我正在创建一个存储联系人的SQL数据库.我希望能够删除联系人,并且每个联系人的正确ID对于我连接到它的软件至关重要.让我们说我有联系詹姆斯,他是第一个.他的身份证是0.我加上玛丽,她的身份证是1.如果我删除詹姆斯,玛丽的身份证如何设置为0而不是1?它必须重置,因为她现在是第一个.换句话说,当有人被删除时,如何重置数据库中的所有ID?谢谢
这在很多方面都是一个坏主意.我正在辩论是否应该告诉你如何做到这一点.一旦设置了行的标识,就永远不应该有理由改变它的标识.
如果您有可能使用错误的字段作为PK标识符.我在这里假设您正在谈论您的PK字段,这也是一个标识列.
请记住,如果您创建链接到联系人表的任何表,并且您开始更改您的ID,则还需要更新所有这些表.这将变得昂贵......
一旦你在数据库中拥有超过一小部分记录,这将变得非常缓慢.标识列不适合你,你需要做一些自定义的tsql来改变所有数字 - 但是一个非常糟糕的主意,imo.
如果您需要跟踪添加的订单,为什么不使用日期/时间戳.
你需要重新思考你的设计.
这不是ID如何工作,而不是它们应该如何工作.ID永远不会改变,或者所有链接的信息都指向错误的行.
相反,为什么不添加您控制的"External_ID"列?或者在查询中动态编号(使用计算列?)