Sql 验证主键唯一性

Sql 验证主键唯一性,sql,sql-server,Sql,Sql Server,我得到了一个表,我需要检查它是否有不符合主键的错误条目,主键在2列上运行 我一直在尝试编写一个SQL查询来实现这一点。就如我所说,我甚至不知道从哪里开始 你们中有人知道如何编写SQL查询来检查表中X列和Y列的组合是否有重复项吗?您可以使用以下方法在两列中获得重复项: select x, y from t group by x, y having count(*) > 1; 如果将(x,y)声明为主键,则无需执行此操作。无法将重复值插入具有此声明的表中 在SQL Server中,如果将(x

我得到了一个表,我需要检查它是否有不符合主键的错误条目,主键在2列上运行

我一直在尝试编写一个SQL查询来实现这一点。就如我所说,我甚至不知道从哪里开始


你们中有人知道如何编写SQL查询来检查表中X列和Y列的组合是否有重复项吗?

您可以使用以下方法在两列中获得重复项:

select x, y
from t
group by x, y
having count(*) > 1;
如果将
(x,y)
声明为主键,则无需执行此操作。无法将重复值插入具有此声明的表中


在SQL Server中,如果将
(x,y)
声明为唯一,则也是如此。在某些数据库中,
null
值允许使用
唯一的
约束/索引进行复制;但是,SQL Server不允许对唯一约束/索引使用重复的
NULL
值。

GROUP BY。有。COUNT()如果将两列声明为主键,则无需验证唯一性。数据库会为您这样做。@GordonLinoff,除非您得到一个声明唯一性且充满隐藏垃圾的数据集。