SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED SET NOCOUNT ON GO DECLARE @SchemaName NVARCHAR(128) DECLARE @TableName NVARCHAR(128) DECLARE @Stmt NVARCHAR(MAX) DECLARE @TablesToDel TABLE ([SchemaName] NVARCHAR(128) NOT NULL, [TableName] NVARCHAR(128), PRIMARY KEY ([SchemaName], [TableName])) INSERT INTO @TablesToDel ( [SchemaName], [TableName]) SELECT [s].[name], [t].[name] FROM [sys].[tables] AS [t] INNER JOIN [sys].[schemas] AS [s] ON [t].[schema_id] = [s].[schema_id] WHERE [t].[type] IN ('U') AND [s].[name] IN (/*Fill list*/) WHILE EXISTS (SELECT * FROM @TablesToDel) BEGIN SELECT TOP(1) @SchemaName = [SchemaName], @TableName = [TableName] FROM @TablesToDel [td] ORDER BY [SchemaName], [td].[TableName] PRINT 'DROP TABLE ' + QUOTENAME(@SchemaName) + N'.' + QUOTENAME(@TableName) + ';' + CHAR(13) + 'GO' DELETE FROM @TablesToDel WHERE [SchemaName] = @SchemaName AND [TableName] = @TableName END GO