原文地址:https://blog.sqlauthority.com/2022/02/28/sql-server-find-missing-identity-values/
原文作者:Pinal Dave
-
我最近在全面的数据库性能运行状况检查期间收到一个关于如何查找缺少的标识值的问题。接下来让大家了解一下。
-
让我们假设有一个带有标识列的表,并且其缺少某些标识列。下面是该表的示例。由于某种原因,我们希望找到已从中删除的缺失标识列。例如,此处为预期输出。
-
现在的问题是我们如何能够做到这一点。有一种非常简单的方法来完成此任务。下面是可用于查找缺少的标识值的脚本。虽然有许多不同的方法可以完成这项任务,但我发现这项任务是最有效的。
SELECT Seq
FROM (SELECT ROW_NUMBER() OVER (ORDER BY c1.column_id) Seq
FROM sys.columns c1
CROSS JOIN sys.columns c2) SequenceTable
LEFT JOIN BigTable ON BigTable.ID = SequenceTable.Seq
WHERE BigTable.ID IS NULL AND
Seq < (SELECT MAX(ID) FROM BigTable)
GO
上面的脚本会给我们特定的输出结果。让我知道你对这篇快速博客文章有什么想法。是否希望我将此博客文章转换为视频?如果是,请让我知道,我会很乐意这样做。此外,我建议您订阅我的YouTube频道,在那里我分享了许多经验。
如果您有任何疑问,可以随时在Twitter上与我联系。
参考: 皮纳尔·戴夫 (http://blog.SQLAuthority.com)
最后修改时间:2022-03-18 17:42:03
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。