SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED SET NOCOUNT ON GO DECLARE @SchemaName NVARCHAR(128) DECLARE @Stmt NVARCHAR(MAX) DECLARE @SchemasToDel TABLE ([SchemaName] NVARCHAR(128) NOT NULL PRIMARY KEY) INSERT INTO @SchemasToDel ( [SchemaName] ) SELECT [s].[name] FROM [sys].[schemas] [s] WHERE [s].[name] IN (/*Fill list*/) WHILE EXISTS (SELECT * FROM @SchemasToDel) BEGIN SELECT TOP(1) @SchemaName = [SchemaName] FROM @SchemasToDel ORDER BY [SchemaName] PRINT 'DROP SCHEMA ' + QUOTENAME(@SchemaName) + ';' + CHAR(13) + 'GO' DELETE FROM @SchemasToDel WHERE [SchemaName] = @SchemaName END GO