Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Удаление существующей таблицы в базе данных / 7 сообщений из 7, страница 1 из 1
03.09.2002, 10:53:42
    #32047652
Alex_VB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление существующей таблицы в базе данных
Необходимо проверить существует ли таблица с именем, которое передается в ХП с помощью входного параметра (@NameTable). И если такая таблица есть, то ее нужно удалить, а если - нет, то запустить ХП dbo.CreateNewTable (создание новой таблицы). Я попытался выполнить след. ХП:

CREATE PROCEDURE dbo.DropTable
@NameTable varchar(100)
AS
EXEC('IF EXISTS (SELECT * FROM dbo.sysobjects WHERE sysobjects.Name = '+@NameTable+')
DROP TABLE [dbo.]'+@NameTable)
GO

Но что-то не работает...
...
Рейтинг: 0 / 0
03.09.2002, 11:32:29
    #32047669
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление существующей таблицы в базе данных
Код: plaintext
1.
2.
3.
4.
5.
ALTER PROCEDURE dbo.DropTable 
@NameTable sysname
AS 
EXEC('if OBJECT_ID(''' + @NameTable + ''', ''U'') IS NOT NULL DROP TABLE ' + @NameTable)
GO 
...
Рейтинг: 0 / 0
03.09.2002, 11:40:17
    #32047672
Alex_VB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление существующей таблицы в базе данных
Благодарю Jimmers!!! Спасаешь меня прямо дружище!
Только начинаю осваивать SQL Server, вот и возникают подобные вопросы...
Кстати, и за вчерашние ответы тоже огромное спасибо!!!
...
Рейтинг: 0 / 0
03.09.2002, 11:42:43
    #32047673
snake
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление существующей таблицы в базе данных
или так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
ALTER PROCEDURE dbo.DropTable 
@NameTable sysname
AS 
if OBJECT_ID(@NameTable, 'U') IS NOT NULL
     EXEC('DROP TABLE ' + @NameTable)
GO 

...
Рейтинг: 0 / 0
03.09.2002, 11:52:04
    #32047680
Alex_VB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление существующей таблицы в базе данных
Да, все работает замечательно! Ну, а если таблица не существует, то мне необходимо вызвать другую хранимую процедуру, которая создает новую таблицу...Как это можно сделать из этой же ХП:
ALTER PROCEDURE dbo.DropTable
@NameTable sysname
AS
EXEC('if OBJECT_ID(''' + @NameTable + ''', ''U'') IS NOT NULL DROP TABLE ' + @NameTable)
GO
...
Рейтинг: 0 / 0
03.09.2002, 12:53:23
    #32047719
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление существующей таблицы в базе данных
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
ALTER PROCEDURE dbo.DropTable 
@NameTable sysname
AS 
if OBJECT_ID(@NameTable, 'U') IS NOT NULL
     EXEC('DROP TABLE ' + @NameTable)
else
     EXEC MySp @NameTable
GO 


Только странно, что процедура с именем DropTable
что-то создает :)
...
Рейтинг: 0 / 0
03.09.2002, 13:08:55
    #32047730
Alex_VB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление существующей таблицы в базе данных
Нет, процедура с таким именем даже существовать не может, не то чтобы работать...Он у меня называется по-другому...Это я для краткости написал.
Спасибо.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Удаление существующей таблицы в базе данных / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]