我试图找到一种方法来分析没有定义主键的表唯一性。我试图找到一种没有数据库服务器资源的方法,更像是查询/只读,以便能够运行唯一性查询来找出创建唯一记录的列或复合列。
考虑在每列上运行几个不同的计数与计数,但它会非常沉重,并且不会解决键的组合。 可能会使用log2搜索,但似乎也很重
任何想法,SQL代码都支持这种需求?
谢谢!
答案 0 :(得分:0)
提到GROUP BY和HAVING COUNT的一种方式> 1。 但我更喜欢的是找出表中是否有重复的行以及它们使用的是ROW_NUMBER:
WITH CTE AS
( SELECT col1, col2, col3 , RowNumber = ROW_NUMBER()OVER(PARTITION BY col1 ORDER BY col1)
FROM yourTable )
select * from CTE
WHERE RowNumber > 1
如果您有多个列作为键,您可以将所有列放在命令的PARTITION BY部分前面,以根据该列组合找出重复项...