How to find the most common column name in a database

I have a database with about 100 tables. Many of the tables have common column names, such as EmployeeId, EmployeeRank, EmployeeAlternateId  etc. So what I need to find out is which column name is the most common amongst all of the tables. Really what I need to do is to find out what the two most common column names in the database are. Does anyone know how I can do that? Is there a query which would give me the answer?
LVL 2
brgdotnetcontractorAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Mike EghtebasDatabase and Application DeveloperCommented:
SELECT COLUMN_NAME,count(TABLE_NAME) As RepeatedCount
FROM INFORMATION_SCHEMA.COLUMNS
GROUP BY COLUMN_NAME
Order BY RepeatedCount Desc;

Open in new window


Above, in AdventureWorks2014, lists all 346 distinct column names. But for top 2, use:
SELECT top 2 COLUMN_NAME,count(TABLE_NAME) As RepeatedCount
FROM INFORMATION_SCHEMA.COLUMNS
GROUP BY COLUMN_NAME
Order BY RepeatedCount Desc;

Open in new window


to get:
COLUMN_NAME    RepeatedCount
ModifiedDate	    73
rowguid	            32

Open in new window

1

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Scott PletcherSenior DBACommented:
I've found that the I_S views are slow and prone to deadlocking, and also don't have much of the metadata.  I suggest using the sys. views instead:

SELECT TOP (2) c.name, COUNT(*) AS Repetitions
FROM sys.columns c
INNER JOIN sys.objects o ON o.object_id = c.object_id AND o.type = 'U'
GROUP BY c.name
ORDER BY COUNT(*) DESC
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Databases

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.