如何自动增加和自动更改数据库列值

时间:2014-01-19 16:49:07

标签: c# sql database primary-key

我有一个存储不同数据的SQL表。并且主键具有整数值,该值增加1输入一个新数据。只要我们继续添加它就可以正常工作。但是当我们删除任何中心值或结束值时,它会导致问题。

即例如我在表中添加了5行。列sr_num的值为5.当我删除第4条记录时,sr_num列保持如下:1,2,3,5。

我希望一旦删除第4个条目就成为1,2,3,4,我希望第5个也能获得第4个位置和相同的数字。

必须发生在所有人身上。

2 个答案:

答案 0 :(得分:1)

没有。这不是您的主键用于。它仅用于逻辑参考,以允许唯一性。你应该在心理上忽略它使用整数的事实。 @Adriano和@marc_s都是正确的。放下你可以/应该重新编号你的主键值的想法。在某些罕见的情况下你可能会考虑它,但这不是罕见的场合之一。

相反,您可以设置在查询中使用ROW_NUMBER()的查询(或视图)(如@Adriano所述)。然后,您将获得连续的数字而不会弄乱您的主键值。人们通常将其称为序数列或简称为Ord。

答案 1 :(得分:0)

你想要的是一个坏主意。

  

示例:您的 sr_num 拥有其他表的外键   更新 sr_num ,您需要更新其他表格   值也为 sr_num