DECLARE @T varchar(300)
DECLARE @C varchar(max)
DECLARE @Q varchar(max)
DECLARE @ExcludeField varchar(300)
SET @C=''
SET @Q=''
SET @T='MyTable'
SET @ExcludeField='ID'
SELECT @C=(@C + '[' + [name] + ']' + ',')
FROM syscolumns
WHERE
id=(SELECT id FROM sysobjects WHERE type = 'U' AND [name]=@T)
AND [name]<>@ExcludeField
SET @Q =
'SELECT ' + CHAR(13) + CHAR(10)
+ @C + 'COUNT(*) AS [Count] ' + CHAR(13) + CHAR(10)
+ ' FROM ' + @T + CHAR(13) + CHAR(10)
+ ' GROUP BY ' + CHAR(13) + CHAR(10)
+ substring(@C,1,LEN(@C)-1) + CHAR(13) + CHAR(10)
+ ' HAVING COUNT(*)>1 ' + CHAR(13) + CHAR(10)
+ ' ORDER BY COUNT(*) '
--print @Q
EXEC(@Q)