Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как удалить все таблицы начинающиеся на r*****  [new]
dartvaider
Member

Откуда:
Сообщений: 790
Подскажите как удалить все таблицы называющиеся на r***
Нужно вставить в цикл и сравнивать все насколько я понял, но как это сделать стандартным запросом я не знаю :( подскажите плиз
очень надо
delete * from???
4 янв 06, 15:18    [2229056]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все таблицы начинающиеся на r*****  [new]
~PJ
Member

Откуда: Украина
Сообщений: 394
Наверное получить их имена из системной таблицы . А потом удалять зная имя .
Сам не пробовал .
4 янв 06, 15:43    [2229108]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все таблицы начинающиеся на r*****  [new]
Ray D
Member

Откуда: from the middle of nowhere
Сообщений: 3598
Блог
BOL: information_schema

пользуйтесь осторожно
declare tables cursor fast_forward
for 
select table_name, table_schema
from information_schema.tables 
where table_type = 'base table' and 
      objectproperty(object_id(table_schema + N'.' + table_name), 'IsUserTable') = 1 and
      table_name like 'r%'

declare @name sysname, @schema sysname
open tables

fetch next from tables into @name, @schema
while (@@fetch_status <> -1) begin
	if (@@fetch_status <> -2) begin
             exec('drop table ' + @schema + N'.' + @name)
	end
        fetch next from tables into @name, @schema
end

close tables
deallocate tables
go
4 янв 06, 15:57    [2229130]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все таблицы начинающиеся на r*****  [new]
dartvaider
Member

Откуда:
Сообщений: 790
Спасибо попробую!
4 янв 06, 16:28    [2229179]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все таблицы начинающиеся на r*****  [new]
Antei
Member

Откуда: Ukraine
Сообщений: 121
Если на таблицу кто то ссылается, то ее не получится удалить. Надо сначала констрэйнты на нее дропнуть...
4 янв 06, 16:56    [2229221]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все таблицы начинающиеся на r*****  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
можно сделать выборку из sysobjects

SELECT name 
FROM sysobjects 
WHERE type='U' AND name Like 'r%'

могу в именах полей ошибаться = нет под рукой ни чего)
4 янв 06, 23:02    [2229766]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все таблицы начинающиеся на r*****  [new]
muk07
Member

Откуда: Челябинск
Сообщений: 1853
Опасное мероприятие.
Лет несколько назад в одной из моих программ было написано
"Удалить все таблицы, начинающиеся с GetComputerName()"
Пользователи назвали компьютер "Людмила Васильевна".
А для кириллицы GetComputerName возвращал пустую строку.
Угадайте что было дальше
5 янв 06, 08:11    [2229961]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить все таблицы начинающиеся на r*****  [new]
EvAlex
Member

Откуда: Israel
Сообщений: 1001
sp_msforeachtable 'if parsename(''?'',1) like ''r%''  drop table ?'
5 янв 06, 14:07    [2230618]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить