Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 как удалить несколько таблиц после их поиска в БД?  [new]
Romanov-krd
Member

Откуда:
Сообщений: 120
Всем привет. Такой вопрос - Осуществляю поиск нескольких таблиц в БД по части их имени с помощью like '%%'.

select * from sys.tables where name like '%test%'

Как переписать запрос чтобы удалялись все таблицы из sys.tables в чьих именах есть %test% ?
13 июн 17, 19:21    [20561638]     Ответить | Цитировать Сообщить модератору
 Re: как удалить несколько таблиц после их поиска в БД?  [new]
Remind
Member

Откуда: UK
Сообщений: 523
Romanov-krd,

Dynamic sql
13 июн 17, 19:30    [20561654]     Ответить | Цитировать Сообщить модератору
 Re: как удалить несколько таблиц после их поиска в БД?  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33535
Блог
select 'drop table ' +... from sys.tables where name like '%test%'
13 июн 17, 21:24    [20561812]     Ответить | Цитировать Сообщить модератору
 Re: как удалить несколько таблиц после их поиска в БД?  [new]
Romanov-krd
Member

Откуда:
Сообщений: 120
вот как надо

[src]declare @name varchar(255),
		@udal varchar(255)
DECLARE my_cur1 CURSOR FOR

SELECT name
FROM sysobjects WHERE id in (341576255,421576540)

open my_cur1
fetch next from my_cur1 into @name
while @@FETCH_STATUS=0
begin
set @udal= 'drop table ' + @name --- динамич sql
exec(@udal)
fetch next from my_cur1 into @name
end
close my_cur1
deallocate my_cur1
[/SRC]
18 июн 17, 17:15    [20573075]     Ответить | Цитировать Сообщить модератору
 Re: как удалить несколько таблиц после их поиска в БД?  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
DECLARE @DropTable NVARCHAR(MAX)=N'';
SELECT @DropTable=@DropTable+N','+QUOTENAME(TABLE_SCHEMA)+N'.'+QUOTENAME(TABLE_NAME) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE=N'BASE TABLE' AND TABLE_NAME LIKE N'%test%';
SET @DropTable=N'DROP TABLE '+STUFF(@DropTable,1,1,N'');
EXEC(@DropTable);
Правда, приём на второй строке недокументирован.
Но без ORDER BY возможных проблем не вижу.
18 июн 17, 19:15    [20573205]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить