Skip to content

Instantly share code, notes, and snippets.

@shbaz
Created September 2, 2011 06:31
Show Gist options
  • Save shbaz/1188035 to your computer and use it in GitHub Desktop.
Save shbaz/1188035 to your computer and use it in GitHub Desktop.
Remove all non-dbo schemas, views and stored procedures
--
-- Remove non dbo tables, views and stored procedures
--
BEGIN TRANSACTION
DECLARE @Cmd NVARCHAR(max);
DECLARE [CmdCursor] CURSOR FAST_FORWARD READ_ONLY FOR
SELECT 'DROP TABLE [' + s.name + '].[' + t.name + '];'
FROM sys.tables AS t
INNER JOIN sys.schemas AS s ON t.schema_id = s.schema_id
WHERE s.name <> 'dbo'
UNION ALL
SELECT 'DROP PROCEDURE [' + s.name + '].[' + p.name + '];'
FROM sys.procedures AS p
INNER JOIN sys.schemas AS s ON p.schema_id = s.schema_id
WHERE s.name <> 'dbo'
UNION ALL
SELECT 'DROP VIEW [' + s.name + '].[' + v.name + '];'
FROM sys.views AS v
INNER JOIN sys.schemas AS s ON v.schema_id = s.schema_id
WHERE s.name <> 'dbo';
OPEN [CmdCursor];
FETCH NEXT FROM [CmdCursor] INTO @Cmd
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT('EXECUTE: ' + @Cmd);
EXEC(@Cmd);
FETCH NEXT FROM [CmdCursor] INTO @Cmd
END
CLOSE [CmdCursor]
DEALLOCATE [CmdCursor]
COMMIT TRANSACTION
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment