Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Удаление сразу нескольких таблиц. / 7 сообщений из 7, страница 1 из 1
10.10.2002, 16:39:00
    #32057165
Larvef
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сразу нескольких таблиц.
Вопрос.
Как за один раз удалить все таблицы, возвращаемые следующим запросом?

select * from sysobjects WHERE type='U' AND name like 'forum1topic%'

Научите, пожалуйста.
...
Рейтинг: 0 / 0
10.10.2002, 17:17:43
    #32057189
VVG_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сразу нескольких таблиц.
Если их не очень много - то так:

Код: plaintext
1.
2.
declare @str varchar( 8000 ) set @str=''
Select @str=@str+' drop table '+name from sysobjects WHERE type='U' AND name like 'forum1topic%' 
exec(@str)
...
Рейтинг: 0 / 0
10.10.2002, 17:19:59
    #32057191
Larvef
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сразу нескольких таблиц.
VVG
Спасибо!
А если много?
...
Рейтинг: 0 / 0
10.10.2002, 17:35:07
    #32057202
VVG_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сразу нескольких таблиц.
Если в 8000 не помещается, тогда курсором только.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
declare c cursor static forward_only for select 'driop table '+name from sysobjects WHERE type='U' AND name like 'forum1topic%'
declare @str varchar( 200 )
open c
fetch next from c into @str
while @@fetch_status= 0  begin
 exec (@str)
 fetch next from c into @str
end
close c
deallocate c
...
Рейтинг: 0 / 0
10.10.2002, 17:39:22
    #32057203
dkstranger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сразу нескольких таблиц.
Можно и без курсора :)
declare @str varchar(8000)
declare @tbl varchar(75)

while exists(select name from sysobjects WHERE
type='U' AND name like 'forum1topic%' ) begin
Select @str=min(name) from sysobjects WHERE type='U' AND name like 'forum1topic%'
select @str='drop table '+@tbl
exec(@str)
end
...
Рейтинг: 0 / 0
10.10.2002, 18:34:20
    #32057214
VVG_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сразу нескольких таблиц.
Можно и без циклов

xp_cmdshell('bcp ....') в текстовый файл и потом xp_cmdshell('osql ....') его.
...
Рейтинг: 0 / 0
10.10.2002, 18:49:33
    #32057230
akuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сразу нескольких таблиц.
delete sysobjects WHERE type='U' AND name like 'forum1topic%'
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Удаление сразу нескольких таблиц. / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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