我有一个 SQL 服务器(2008 R2),它将文件的元数据存储在表中。每个文件都有自己的 Row,每个文件都有一个为它计算和存储的 MD5。我想打印一个 MD5 值在服务器中多次出现的文件列表,这样我就可以检查并识别随着时间的推移重复的文件并决定删除哪个文件。我有一个相当混乱的命令,里面有几个内部连接,我发现几年前我的 MySQL 服务器可以使用,但是将它修改为 SQL Server 还没有为我工作。任何人都知道任何更简单的方法来做到这一点?下面是我正在尝试的修改后的 MySQL 命令。谢谢
select [IGCSlidesDB].[dbo].[FilePath]
, [IGCSlidesDB].[dbo].[FileSize]
, [IGCSlidesDB].[dbo].[MD5] from [IGCSlidesDB].[dbo].[MD5Tool]
inner join ( select
[IGCSlidesDB].[dbo].[FilePath],
[IGCSlidesDB].[dbo].[FileSize],
[IGCSlidesDB].[dbo].[MD5] from [IGCSlidesDB].[dbo].[MD5Tool] group by [MD5] having count(*)>1)
as t2 on ([IGCSlidesDB].[dbo].[MD5Tool].[MD5]=[t2].[MD5])
order by [IGCSlidesDB].[dbo].[MD5Tool].[FilePath];