![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как средствами SQL проверить наличие таблицы в БД? [MSSQL]
3asys © (2002-09-17 13:21:00)Вопрос не совсем "Дельфийский": Как средствами SQL проверить существует ли в базе данных (MS SQL Server) таблица и если существует - удалить ее?
Запрос вида:
if exists (select * from tmp) drop table tmp
работает если таблица tmp не пуста. Но проверка должна работать и для пустой таблицы.
Данный запрос выполняется в asp-скрипте.
Что здесь можно сделать?
С Уважением, 3asys
BlackTiger (2002-09-20 11:42:00) [1]Маленькое дополнение к 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
DmitryK (2002-09-19 14:16:00) [2]Если ты попросишь 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 - собственно таблица, которую надо удалить)
3JIA9I CyKA (2002-09-17 13:47:00) [3]1) if Object_ID("tempdb..#tmp") > 0 print("BlaBlaBla")
2) http://www.sql.ru/forum/actualtopics.aspx?bid=1
3asys (2002-09-17 13:44:00) [4]Спасибо большое!
С Уважением, 3asys
Johnmen (2002-09-17 13:27:00) [5]Делать запрос к системной таблице, где хранятся имена таблиц БД.
Mike Kouzmine (2002-09-17 13:24:00) [6]Ну самый тупой select * from t в try except