sql-server - 在 SQL Server 中重新编号列
问题描述
我在 SQL Server 中有一个大问题。在我的一张表中,我有一个自动编号列。删除某行时,此列中的编号会变得混乱。我想使用存储过程重新编号。我怎样才能做到这一点?
解决方案
列唯一标识表中的identity
每一行。这就是它的目的。通常这些也是相关表中的主键。它们用于外键引用。
您不想在创建值后更改它们。换句话说,您希望每一行都有一个在数据库中一致且跨时间一致的标识符。您不希望“27”在今天意味着一件事,而下个月则意味着另一件事。
如果您想要某种没有间隙的序列号,row_number()
请在查询表时使用。这将“填补”空白,尽管分配给给定行的特定数字可能会随着时间而变化。
推荐阅读
- html - 如何使另一张幻灯片图像出现?
- flutter - 在 setState() 中调用 Provider 自定义方法导致错误:或在构建期间调用 markNeedsBuild()
- python - 如何将一个函数的结果存储到一个类中?
- list - Prolog - 识别变量的子列表
- javascript - URLSearchParams.get() 返回部分值
- c# - Xamarin ProgressBar 绑定进度
- ruby-on-rails - 仅当此类型尚不存在时才渲染 h3
- vue.js - VeeValidate - 检查已验证的输入字段以启用另一个输入
- javascript - 将变量发送到同一个函数
- typescript - TypeScript:在对象之间转换元组的类型安全方式?