Как проверить существует ли таблица в бд?

Тема в разделе "Delphi - Базы данных", создана пользователем pol_g, 30 авг 2005.

Статус темы:
Закрыта.
  1. pol_g

    pol_g Гость

    Нужно проверить существует ли таблица с указанным названием в бд если не существует то сгенерировать если существует то выдать сообщение,как такую проверку можно реализовать на програмном уровне?
     
  2. Barmutik

    Barmutik Гость

    Способ проверки на наличие таблицы в базе зависит от сервера БД.

    Простой вариант создавать таблицу и если сервер БД выдаст ошибку то .. судя по всему таблица уже существует в БД.. конечно если запрос на создание был верным :p
     
  3. ????

    ???? Гость

    Для: pol_g
    Код (Text):
    select count(*) from user_objects where object_name = 'ТАБЛИЦА'
    [and object_type = 'TABLE']
    то что в квадраных скобках надо для поиска именно таблицы с таким имененим, а без скобок ищет проверяет только наличие объекта с таким именем

    З.Ы. Oracle
    З.З.Ы вместо user_objects можно all_objects и dba_objects в зависимости от задачи
     
  4. dma_shl

    dma_shl Гость

    Database.Session.GetTableNames

    procedure GetTableNames(const DatabaseName, Pattern: String; Extensions, SystemTables: Boolean; List: TStrings);
    Call GetTableNames to retrieve a list of the tables associated with a given database. DatabaseName specifies the name of the database from which to retrieve table names.

    правда возвращает владелец(или схема в оракле)+имя таблицы
    на зато не зависит от используемой бд.
     
  5. Barmutik

    Barmutik Гость

    Скажем так.. эта функция НЕ всегда возвращает полный список таблиц!
     
  6. shm

    shm Гость

    Можно не создавать, а просто попробовать сделать выборку типа

    select count(*) from ТАБЛИЦА;

    В Oracle есть еще all_tables - может, и в других СУБД нечто похожее имеется.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей