Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.10;
Скачать: CL | DM;

Вниз

Как средствами SQL проверить наличие таблицы в БД?   Найти похожие ветки 

 
3asys   (2002-09-17 13:21) [0]

Вопрос не совсем "Дельфийский": Как средствами SQL проверить существует ли в базе данных (MS SQL Server) таблица и если существует - удалить ее?
Запрос вида:
if exists (select * from tmp) drop table tmp
работает если таблица tmp не пуста. Но проверка должна работать и для пустой таблицы.
Данный запрос выполняется в asp-скрипте.
Что здесь можно сделать?

С Уважением, 3asys


 
Mike Kouzmine   (2002-09-17 13:24) [1]

Ну самый тупой select * from t в try except


 
Johnmen ©   (2002-09-17 13:27) [2]

Делать запрос к системной таблице, где хранятся имена таблиц БД.


 
3asys   (2002-09-17 13:44) [3]

Спасибо большое!

С Уважением, 3asys


 
3JIA9I CyKA ©   (2002-09-17 13:47) [4]

1) if Object_ID("tempdb..#tmp") > 0 print("BlaBlaBla")
2) http://www.sql.ru/forum/actualtopics.aspx?bid=1


 
DmitryK ©   (2002-09-19 14:16) [5]

Если ты попросишь EnterpriseManager сгенерировать скрипт для этой таблицы вместе с кодом для удаления, то вот что примерно можешь получить

/****** Object: Table dbo.XXXXXX Script Date: 19.09.02 13:11:52 ******/
if exists (select * from sysobjects where id = object_id("dbo.XXXXXX") and sysstat & 0xf = 3)
drop table dbo.XXXXXX



(dbo.XXXXXX - собственно таблица, которую надо удалить)


 
BlackTiger   (2002-09-20 11:42) [6]

Маленькое дополнение к DmitryK (просто от себя):
напиши себе функцию или процедуру:
CREATE PROCEDURE sp_delete_table(@table-name varchar(100))
AS
BEGIN
IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT-ID("dbo."+@table-name) AND sysstat & 0xf = 3)
DROP TABLE "dbo." + @table_name
END



Страницы: 1 вся ветка

Текущий архив: 2002.10.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
1-31840
PaRL
2002-09-28 16:58
2002.10.10
---|Ветка была без названия|---


14-32008
DenKop
2002-09-17 13:37
2002.10.10
Прямое соединение через COM порт


1-31691
koks
2002-09-30 14:40
2002.10.10
Разделители в ExpressBars


3-31641
Виталий Панасенко
2002-09-18 14:50
2002.10.10
Почему глючит Дятел


1-31894
PaRL
2002-09-29 15:28
2002.10.10
Глобальные переменные.