![]() |
1
4
除了
假设启用标识规范实际上是从列中的最高整数开始的,可能有人使用
正如Andomar所说的,重新排序的最快方法是像这样删除/重新创建列
|
![]() |
2
3
|
![]() |
3
1
标识列中的重复项可以解释为:
|
![]() |
4
1
使用identity\u INSERT的identity列“RecNo”中的重复值示例:
设置identity\u insert时,建议不要更改它(以允许显式值)。通过再次设置种子在标识列“RecNo”中复制值的示例:
|
![]() |
5
0
如果身份与关系无关,是的,您可以删除并重新创建它。如果有关系,情况就更复杂了。
完成后,您将这些子记录更新为新的id。然后在没有子记录的情况下删除旧的父记录。如果你(我指的是公司,不一定是程序员,有时这是只有用户才能做的)不能识别子记录指向哪个父记录,那么就删除那些子记录,然后删除旧的父记录。如果您有子记录,您不想删除,因为您需要用于成本历史报告的数据或类似的东西,然后保留一个旧的父记录。在本例中,我可能会将其中一个父记录更改为Unknown作为用户名或表中标识该记录的任何其他值,然后删除另一个重复的id。 祝你好运,像这样的数据完整性问题很难解决。另外,我会在您的代码库中搜索短语“set indentity\u insert”,以确保没有目光短浅的程序员会避免正确使用identity字段。您不希望此问题再次发生。如果您找到了这段代码,并且知道是谁对您做了这件事(源代码管理是一件美妙的事情),我建议您最好指派他来解决任何数据完整性问题。经历过一次修复数据完整性问题的痛苦,你将来会成为一个更加谨慎的程序员。 |
![]() |
sqlrobert · SQL-如何查找不包含特定字段值的一组记录 1 年前 |
![]() |
Nick Fleetwood · 调度语法的LINQ查询 2 年前 |
![]() |
Mateen Bagheri · 选择表的计数并选择其自身 2 年前 |
![]() |
Java · 使用交叉应用同时显示两列 2 年前 |