Вопрос неясен, но, возможно, этот код SQL может помочь подтолкнуть вас в правильном направлении.
Он захватывает идентификаторы и счетчики каждого идентификатора из базы данных один, идентификаторы и счетчики идентификаторов из базы данных дваи сравнивает их, перечисляя все строки, где счетчики различны.
WITH DB1Counts AS (
SELECT ID, COUNT(ID) AS CountOfIDs
FROM DatabaseOne.dbo.TableOne
GROUP BY ID
), DB2Counts AS (
SELECT ID, COUNT(ID) AS CountOfIDs
FROM DatabaseTwo.dbo.TableTwo
GROUP BY ID
)
SELECT a.ID, a.CountOfIDs AS DBOneCount, b.CountOfIDs AS DBTwoCount
FROM DB1Counts a
INNER JOIN DB2Counts b ON a.ID = b.ID
WHERE a.CountOfIDs <> b.CountOfIDs
Этот SQL выбирает из определенных идентификаторов, используя нотацию «Database.Schema.Table». Поэтому замените «DatabaseOne» и «DatabaseTwo» именами ваших двух баз данных. И, конечно, замените TableOne и TableTwo именами ваших таблиц (я предполагаю, что они одинаковы). Это устанавливает два выбора, по одному для каждой базы данных, которые группируются по идентификатору, чтобы получить счетчик каждого идентификатора. Затем он объединяет эти два выбора по идентификатору и возвращает все строки, в которых значения различны.