我正在尝试在 sql server management studio 2012
中删除一行,但出现了错误:
没有删除任何行
尝试删除第2行时出现问题。错误来源:Microsoft.SqlServer.Management.DataTools。错误信息:更新或删除的行值不足以使行唯一,或者会修改多个行(共2行)。
有没有不需要键入任何查询就可以解决这个错误的方法?
我正在尝试在 sql server management studio 2012
中删除一行,但出现了错误:
没有删除任何行
尝试删除第2行时出现问题。错误来源:Microsoft.SqlServer.Management.DataTools。错误信息:更新或删除的行值不足以使行唯一,或者会修改多个行(共2行)。
有没有不需要键入任何查询就可以解决这个错误的方法?
感谢@Hani的帮助。
我遇到了同样的问题(实际上是一个带有唯一ID的表格,但是有些行被意外重复了,包括“唯一ID”,因此我无法删除重复行),你的建议帮助我从SQL Server Management GUI中解决了这个问题。
SELECT TOP(200)...
{剪切我的筛选条件所创建的内容}
改为:
SELECT TOP(1)...
{剪切我的筛选条件所创建的内容}
感谢您的帮助,这对我来说是GUI和SQL代码的完美结合,使我能够安全高效地完成工作。
希望这可以帮助其他处于类似情况的人。
您的表中没有主键或唯一键。
SQL Server 无法删除此行,因为无法将其与其他行区分开来。
解决方法是向表中添加一个唯一的主键。无论如何都不建议没有主键。一个简单的 integer
类型的列加上 autoincrement
属性应该能够透明地为您工作。
如果您正在尝试删除表中没有唯一标识符的重复行,可以尝试以下方法。
DELETE TOP(1) FROM theTable WHERE condition1, condition2,...
在应用删除查询之前,您应该先使用SELECT语句进行测试。
我还发现,如果您有一个text
或ntext
列,那么您将会遇到这个错误。我将该列转换为NVARCHAR(MAX)
后,此问题就解决了。