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

  • Автор темы pol_g
  • Дата начала
Статус
Закрыто для дальнейших ответов.
P

pol_g

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

Barmutik

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

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

????

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

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

dma_shl

#4
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.

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

Barmutik

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

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

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