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

Откуда:
Сообщений: 183
Ребята,
для разработки нужно время отвремени удалять полностью schemа.

но DROP SCHEMA schema_namе работает только в том случае когда она пустая, тоесть не содержит никаких объектов.

Вопрос: есть ли возможность удалить схему с сушествуюшиме в ней объектами?
9 янв 12, 13:32    [11873692]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить SCHEMA и все её объекты  [new]
gds
Member

Откуда: Железнодорожный
Сообщений: 1842
Блог
unkis,

declare	@fullname nvarchar(516),
		@type char(2),
		@sqlrun nvarchar(1000)
declare object_cursor INSENSITIVE cursor for
	select N'[dbatools].'+quotename(o.name) as fullname,o.type from sys.all_objects o
		where o.schema_id = schema_id('dbatools')
		and o.type in ('U','V','P','FN','IF','TF')
		order by create_date desc;
open object_cursor;
fetch next from object_cursor into @fullname,@type
while @@fetch_status = 0 begin
	select @sqlrun = 'DROP' +
	case @type
		 when 'U' then ' TABLE '
		 when 'V' then ' VIEW '
		 when 'P' then ' PROCEDURE '
		 when 'FN ' then ' FUNCTION '
		 when 'IF ' then ' FUNCTION '
		 when 'NF ' then ' FUNCTION '		 
	end + @fullname
	exec sp_executesql @sqlrun
	print @sqlrun
	fetch next from object_cursor into @fullname,@type	
end
close object_cursor;
deallocate object_cursor;
GO

drop schema [dbatools]
print N'drop schema [dbatools]'
GO

В примере удаляются объекты схемы dbatools. А дальше по образу и подобию думаю допишите.
9 янв 12, 14:05    [11873893]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить