Начните с:
SELECT sys.tables.[name] AS 'TableName',
sys.columns.[name] AS 'ColumnName'
FROM sys.columns
INNER JOIN sys.tables ON sys.columns.object_id = sys.tables.object_id
WHERE sys.columns.[name] LIKE '%ID%'
ORDER BY 1, 2
А если вам нужно просто вывести все значения кроме максимального то:
WHERE 1=1 ORDER BY some_column_name DESC OFFSET 1 ROWS
Как обратится с select к объекту-таблица
DECLARE @SQL VARCHAR(MAX) = 'SELECT * FROM '
SELECT @SQL = @SQL + sys.tables.[name] FROM sys.columns
INNER JOIN sys.tables ON sys.columns.object_id = sys.tables.object_id
WHERE sys.columns.[name] = 'some_column_name'
EXECUTE( @SQL )
The Curse and Blessings of Dynamic SQL.