Drop all DB objects
--drop all db objects
SET NOCOUNT ON
GO
-- storage SQL statement to be executed
DECLARE @sql_str Nvarchar(4000)
SELECT @sql_str = ''
--loop dropped DB objects
WHILE 1 = 1
BEGIN
SELECT @str_sql = @str_sql + 'drop ' + (CASE t1.type
WHEN 'U' THEN 'table'
WHEN 'FN' THEN 'function'
WHEN 'SO' THEN 'sequence'
WHEN 'P' THEN 'procedure'
WHEN 'UT' THEN 'type'
WHEN 'SQ' THEN 'QUEUE'
WHEN 'FS' THEN 'function'
WHEN 'TF' THEN 'function'
WHEN 'AS' THEN 'assembly'
WHEN 'V' THEN 'view'
WHEN 'D' THEN 'Default'
WHEN 'UQ' THEN 'Unique'
END) + ‘ ‘ + t1.name + ' '
FROM ( SELECT name, type FROM sys.all_objects WHERE type IN ('U','FN','SO','FS','TF','V') AND SCHEMA_NAME(schema_id) = 'dbo')
UNION ALL
SELECT NAME, 'UT' AS type FROM sys.types WHERE SCHEMA_NAME(schema_id) = 'dbo'
UNION ALL
SELECT NAME, 'UT' AS type FROM sys.assemblies WHERE SCHEMA_NAME(principal_id) = 'dbo'
) t1
ORDER BY NEWID()
--IF @sql_str = '' , no objects to be dropped , otherwise continue.
IF @sql_str = ''
BEGIN
break
END
BEGIN TRY
-- EXEC(@sql_str)
EXECUTE sp_executesql @sql_str
END TRY
BEGIN CATCH
END CATCH
SET @sql_str = ''
END
GO
浙公网安备 33010602011771号