One of the problems I had when setting up Community Server 2008 was that my attempts to move from a local instance of SQL Server Express 2005 to SQL Server 2005 initially failed. I was left with a half installed instance of CS 2008 and could not remove the database and re-create as it was in a hosted environment.
A bit of web searching turned up an elegant solution that saved me heaps of time. Hope it works well for you too!
Simple Table Only Bulk Delete
If you only want to drop tables from your database, not the whole structure, then the procedure sp_MSforearchtable comes in handy
exec sp_MSforeachtable "DROP TABLE ? PRINT '? dropped' "
Bulk Delete Tables along with Stored Procedures / Views / Schemas / Functions
I found a blog by Patrick Galluci (visit) who took csome original code that deleted only stored procedures and views, and extended it to include schemas and functions. I found Patrick's code was much more successful at removing views and sp's due to the fact that it also removes schemas. Run the following code in a query through Enterprise Manager and then run the stored procedure usp_DropSPFunctionsViews to remove all the unwanted structures.
create procedure usp_DropSPFunctionsViews
as
-- variable to object name
declare @name varchar(1000)
-- variable to hold object type
declare @xtype varchar(20)
-- variable to hold sql string
declare @sqlstring nvarchar(4000)
declare SPViews_cursor cursor for
SELECT QUOTENAME(ROUTINE_SCHEMA) + '.' + QUOTENAME(ROUTINE_NAME)
AS name, ROUTINE_TYPE AS xtype
FROM
INFORMATION_SCHEMA.ROUTINES
UNION
SELECT QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) AS
name, 'VIEW' AS xtype
FROM
INFORMATION_SCHEMA.VIEWS
open SPViews_cursor
fetch next from SPViews_cursor into @name, @xtype
while @@fetch_status = 0
begin
-- test object type if it is a stored procedure
if @xtype = 'PROCEDURE'
begin
set @sqlstring = 'drop procedure ' + @name
exec sp_executesql @sqlstring
set @sqlstring = ' '
end
-- test object type if it is a function
if @xtype = 'FUNCTION'
begin
set @sqlstring = 'drop FUNCTION ' + @name
exec sp_executesql @sqlstring
set @sqlstring = ' '
end
-- test object type if it is a view
if @xtype = 'VIEW'
begin
set @sqlstring = 'drop view ' + @name
exec sp_executesql @sqlstring
set @sqlstring = ' '
end
-- get next record
fetch next from SPViews_cursor into @name, @xtype
end
close SPViews_cursor
deallocate SPViews_cursor
GO