Похоже, у вас есть 3 фрагмента информации, которые вместе представляют определенное состояние в вашем приложении. Вместо того, чтобы включать эти 3 части состояния, почему бы не создать значение, которое инкапсулирует их? Затем вы можете использовать иерархию объектов или делегата во время создания, чтобы связать действие, которое вы пытаетесь выполнить.
SELECT COUNT(DISTINCT `table_name`) FROM `information_schema`.`columns` WHERE `table_schema` = 'your_db_name'
вернет фактическое количество таблиц (или представлений) в вашей БД. Если это число равно 0, значит, таблиц нет.
select count(*)
from information_schema.tables
where table_type = 'BASE TABLE'
and table_schema = 'your_database_name_here'
Если вы используете SQL Server 2005 или выше, вы можете использовать одно из системных представлений, чтобы получить это для текущей базы данных:
select Count(*)
from sys.tables
where [type] = 'U'
Реализация SQLServer:
USE database_name
SELECT COUNT(*) from information_schema.tables
WHERE table_type = 'base table'
«Выбрать * из information_schema.tables» даст вам список таблиц в большинстве баз данных.