USE master go DECLARE @sql nvarchar(MAX), @nl char(2) = char(13) + char(10) -- Drop the server trigger, in case you haven't already. SELECT @sql = (SELECT 'DROP TRIGGER ' + quotename(name) + ' ON ALL SERVER ' + @nl FROM sys.server_triggers WHERE name IN ('logintri') FOR XML PATH(''), TYPE).value('.', 'nvarchar(MAX)') PRINT(@sql) EXEC(@sql) -- Dropping all databases we created. SELECT @sql = (SELECT 'ALTER DATABASE ' + quotename(name) + ' SET SINGLE_USER WITH ROLLBACK IMMEDIATE' + @nl + 'DROP DATABASE ' + quotename(name) + @nl FROM sys.databases WHERE name IN ('Playground', 'PlayAudit', 'DirectPlay', 'PlaySign', 'PlayChain1', 'PlayChain2', 'Revolver', 'ImpersonalPlay1', 'ImpersonalPlay2') FOR XML PATH(''), TYPE).value('.', 'nvarchar(MAX)') PRINT @sql EXEC(@sql) -- Dropping all logins. SELECT @sql = (SELECT 'DROP LOGIN ' + quotename(name) + @nl FROM sys.server_principals WHERE name IN ('SIGN [Playground].[Management].[ShowSessions]', 'SIGN [Playground].[dbo].[add_signdata]', 'PROXY Playground.Management.ShowSessions2', 'ShowSessions$certlogin', 'spShowSessions$certlogin', 'PlaygroundShowSessions$certlogin', 'Playground$owner', 'PlayAudit$owner', 'Rita', 'Maxwell', 'DirectPlay$owner', 'PlaySign$owner', 'PlayChain$owner', 'SgtPepper', 'ImpersonalPlay$owner') FOR XML PATH(''), TYPE).value('.', 'nvarchar(MAX)') PRINT(@sql) EXEC(@sql) -- And the server role. SELECT @sql = (SELECT 'DROP SERVER ROLE ' + quotename(name) + @nl FROM sys.server_principals WHERE name IN ('PowerUsers') FOR XML PATH(''), TYPE).value('.', 'nvarchar(MAX)') PRINT(@sql) EXEC(@sql) -- Drop the "system procedure" we created. SELECT @sql = (SELECT 'DROP PROCEDURE dbo.' + quotename(name) + @nl FROM sys.objects WHERE name IN ('sp_ShowSessions') AND schema_id = 1 FOR XML PATH(''), TYPE).value('.', 'nvarchar(MAX)') PRINT(@sql) EXEC(@sql) -- The logintokeninfo view. SELECT @sql = (SELECT 'DROP VIEW dbo.' + quotename(name) + @nl FROM sys.objects WHERE name IN ('logintokeninfo') AND schema_id = 1 FOR XML PATH(''), TYPE).value('.', 'nvarchar(MAX)') PRINT(@sql) EXEC(@sql) -- And finally, drop two server-level certificates. SELECT @sql = (SELECT 'DROP CERTIFICATE ' + quotename(name) + @nl FROM sys.certificates WHERE name IN ('ShowSessions$cert', 'spShowSessions$cert', 'PlaygroundShowSessions$cert', 'SIGN [Playground].[Management].[ShowSessions]', 'SIGN [Playground].[dbo].[add_signdata]') FOR XML PATH(''), TYPE).value('.', 'nvarchar(MAX)') PRINT(@sql) EXEC(@sql)