我在 Visual Studio - VB.NET 中工作。
我的问题是我想删除 SQL Server 中的特定行,但我拥有的唯一唯一列是自动递增的标识。
我的工作过程:
1.我在列中添加一行(标识正在递增,但我不知道数字)
2.我想删除上一行
每条新记录都有一个唯一的 ID 吗?我的表可能有 2 条完全相同的记录,只是顺序(身份)不同。
任何想法如何处理这个问题?
我在 Visual Studio - VB.NET 中工作。
我的问题是我想删除 SQL Server 中的特定行,但我拥有的唯一唯一列是自动递增的标识。
我的工作过程:
1.我在列中添加一行(标识正在递增,但我不知道数字)
2.我想删除上一行
每条新记录都有一个唯一的 ID 吗?我的表可能有 2 条完全相同的记录,只是顺序(身份)不同。
任何想法如何处理这个问题?
我想删除上一行
那是你的问题。SQL 中没有“前一行”这样的概念。前面这个词意味着顺序,顺序仅适用于查询,通过添加 ORDER BY 子句来实现。表没有顺序。您需要将其改写为“我需要删除满足 <this> 条件的记录。”。这听起来像是迂腐的胡言乱语,但在你承认问题之前,你永远不会找到解决方案。
寻找一种方法来解释插入的标识列的值,然后从中减去 1,这是有很多问题的。在并发下是不正确的。存在回滚时这是不正确的。在 ETL 作业之后它是不正确的。总体而言,永远不要期望单调增加的身份,它们可以自由地跳过间隙,并且您的代码在存在间隙时应该是正确的。