Cybercrux

Everything is achievable through technology

Delete All the table in a Schema


SELECT * INTO #mytemp FROM INFORMATION_SCHEMA.SCHEMATA
WHERE [SCHEMA_NAME] in ('schemaname1','schemaname2','schemaname3')
WHILE (SELECT Count(*) FROM #mytemp) > 0
BEGIN
DECLARE @SCHEMA_NAME varchar(100)
SELECT @SCHEMA_NAME = [SCHEMA_NAME] FROM #mytemp
DECLARE @SQL VARCHAR(MAX)
SET @SQL='';
--Step 1: Remove all CONSTRAINT
SELECT @SQL= COALESCE(@SQL,'') +'ALTER TABLE ' +'[' + s.name + '].[' + t.name + ']' +' DROP CONSTRAINT [' + f.name +']'+ ' ; '
FROM sys.foreign_keys f
INNER JOIN sys.TABLES t ON f.parent_object_id=t.object_id
INNER JOIN sys.schemas s ON t.schema_id=s.schema_id
WHERE t.is_ms_shipped=0
and t.schema_id = schema_id(@SCHEMA_NAME);
--Step 2: Drop all Tables
SELECT @SQL= COALESCE(@SQL,'')+'DROP TABLE ' + '[' + s.name + '].[' + t.name + ']'+ ' ; '
FROM sys.TABLES t
INNER JOIN sys.schemas s ON t.schema_id=s.schema_id
WHERE t.is_ms_shipped=0 and t.schema_id = schema_id(@SCHEMA_NAME);
EXEC(@SQL)
--Custom Query End
DELETE #mytemp WHERE [SCHEMA_NAME] = @SCHEMA_NAME
END
DROP TABLE #mytemp

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s