16 November 2011

Eliminare tutti gli oggetti di un database / Delete all database objects

Script che genera lo script per eliminare tutti gli oggetti di un database:
This script removes all database objects:
SET NOCOUNT ON

SELECT '-- SCRIPT PER ELIMINARE TUTTI GLI OGGETTI DI UN DB --' = ''

-- procedures
union SELECT '/*A*/ DROP PROCEDURE [' + name + ']'
from sys.procedures

UNION

-- check constraints
SELECT '/*B*/ ALTER TABLE [' + object_name( parent_object_id ) + '] DROP CONSTRAINT [' + name + ']'
from sys.check_constraints

UNION

-- functions
SELECT '/*C*/ DROP FUNCTION [' + name + ']'
from sys.objects
where type in ( 'FN', 'IF', 'TF' )

UNION

-- views
SELECT '/*D*/ DROP VIEW [' + name + ']'
from sys.views

UNION

-- foreign keys
SELECT '/*E*/ ALTER TABLE [' + object_name( parent_object_id ) + '] DROP CONSTRAINT [' + name + ']'
from sys.foreign_keys

UNION

-- tables
SELECT '/*F*/ DROP TABLE [' + name + ']'
from sys.tables

UNION

-- user defined types
SELECT '/*G*/ DROP TYPE [' + name + ']'
from sys.types
where is_user_defined = 1
Testato su SQL 2008.