sql删除行错误

Mic*_*ljh 6 sql-server ssms

我正在尝试删除其中的一行,sql server management studio 2012但出现错误:

SQL错误

没有任何行被删除

尝试删除第2行时发生问题错误源:Microsoft.SqlServer.Management.DataTools错误消息:更新或删除的行值不能使行唯一,或者它们会更改多行(2行)

有没有一种方法可以解决错误,而无需键入任何查询?

小智 7

谢谢@哈尼

我遇到了同样的问题(实际上是一个具有唯一 ID 的表,但有些行意外重复,包括“唯一 ID”,因此我无法删除重复的行),您的建议帮助我从 SQL Server 管理 GUI 解决了这个问题.

  1. 我使用 GUI 界面在表格中“编辑前 200 行”。
  2. 然后我在 SQL Criteria 窗格中添加了一个过滤器,它只显示了我的两个重复行。(这是我无法从中删除行之一)。
  3. 受到您评论的启发,我打开了 SQL 窗格并更改了:

SELECT TOP(200)...{剪下我由过滤器创建的条件}

改为阅读:

SELECT TOP(1)...{剪下我由过滤器创建的条件}

  1. 然后我能够“执行 SQL”调整后的 SQL。
  2. 然后我就可以使用界面删除显示的单行(这次没有警告)。
  3. 重新运行包含 200 行的 SQL Criteria 确认仅成功删除了一行,并且保留了一行。

感谢您的帮助,事实证明这是 GUI 和 SQL 代码的完美结合,让我可以安全高效地完成工作。

我希望这可以帮助处于类似情况的其他人。


Gui*_* F. 6

您的表中没有主键、唯一键。

SQL Server 无法删除您的行,因为它与其他行没有任何区别。

解决方案是为您的表添加一个唯一的主键。无论如何都不建议没有。一个简单的integerwithautoincrement应该对你透明地工作。