Как сделать поиск по всем схеамам

В бд есть много схем, каждая из них может содержать таблицу X. Нужно посчитать количество записей с условием например X.name = "a" по всем схемам. Как лучше это сделать? Про реализацию на конкретном языке не спрашиваю, просто общий алгоритм


Ответы (1 шт):

Автор решения: Виталий Злобин

В MS SQL Server можно обратиться к системным представлениям и получить список таблиц, так же можно приджоинить схемы. Ну а дальше просто считаем количество уникальных строк:

SELECT COUNT(*) AS "Кол-во таблиц"
FROM
(
    SELECT DISTINCT
            s."name" AS "Схема",
            o."name" AS "Таблица"
    FROM sys.objects    AS o
    JOIN sys.schemas    AS s ON o.SCHEMA_ID = s.SCHEMA_ID
    WHERE o."name" = 'TableName'
) AS subquery

Уверен, что такие представления есть везде, остаётся нагуглить их названия, если у тебя на MS SQL.

→ Ссылка