Я не слишком знаком со словарем данных SQL Server, но я предположил, что то, что я пытаюсь сделать, возможно.
У нас есть несколько реплицированных баз данных под разными именами:
Client1
Client2
Client3
Вместо того, чтобы полагаться на соглашение об именах, я надеялся идентифицировать эти базы данных, основываясь на том, содержат ли они таблицу ключей, назовите ее MyTable. Так что начал думать, что нужен такой запрос, как следующий:
SELECT db.name
FROM sys.databases db
JOIN sys.tables tbl ON ??
WHERE tbl.Name = 'MyTable'
Это не работает, так как я не вижу, как соединить sys.tables с sys.database напрямую или косвенно, а также sys.tables - это представление, основанное на активной базе данных, а не полный набор таблиц для всех баз данных.
Может кто-нибудь определить подходящий запрос для этой ситуации?