Этот скрипт очищает все представления, SPS, функции PK, FK и таблицы.
/* Drop all non-system stored procs */
DECLARE @name VARCHAR(128)
DECLARE @SQL VARCHAR(254)
SELECT @name = (SELECT TOP 1 [name] FROM sysobjects WHERE [type] = 'P' AND category = 0 ORDER BY [name])
WHILE @name is not null
BEGIN
SELECT @SQL = 'DROP PROCEDURE [dbo].[' + RTRIM(@name) +']'
EXEC (@SQL)
PRINT 'Dropped Procedure: ' + @name
SELECT @name = (SELECT TOP 1 [name] FROM sysobjects WHERE [type] = 'P' AND category = 0 AND [name] > @name ORDER BY [name])
END
GO
/* Drop all views */
DECLARE @name VARCHAR(128)
DECLARE @SQL VARCHAR(254)
SELECT @name = (SELECT TOP 1 [name] FROM sysobjects WHERE [type] = 'V' AND category = 0 ORDER BY [name])
WHILE @name IS NOT NULL
BEGIN
SELECT @SQL = 'DROP VIEW [dbo].[' + RTRIM(@name) +']'
EXEC (@SQL)
PRINT 'Dropped View: ' + @name
SELECT @name = (SELECT TOP 1 [name] FROM sysobjects WHERE [type] = 'V' AND category = 0 AND [name] > @name ORDER BY [name])
END
GO
/* Drop all functions */
DECLARE @name VARCHAR(128)
DECLARE @SQL VARCHAR(254)
SELECT @name = (SELECT TOP 1 [name] FROM sysobjects WHERE [type] IN (N'FN', N'IF', N'TF', N'FS', N'FT') AND category = 0 ORDER BY [name])
WHILE @name IS NOT NULL
BEGIN
SELECT @SQL = 'DROP FUNCTION [dbo].[' + RTRIM(@name) +']'
EXEC (@SQL)
PRINT 'Dropped Function: ' + @name
SELECT @name = (SELECT TOP 1 [name] FROM sysobjects WHERE [type] IN (N'FN', N'IF', N'TF', N'FS', N'FT') AND category = 0 AND [name] > @name ORDER BY [name])
END
GO
/* Drop all Foreign Key constraints */
DECLARE @name VARCHAR(128)
DECLARE @constraint VARCHAR(254)
DECLARE @SQL VARCHAR(254)
SELECT @name = (SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE constraint_catalog=DB_NAME() AND CONSTRAINT_TYPE = 'FOREIGN KEY' ORDER BY TABLE_NAME)
WHILE @name is not null
BEGIN
SELECT @constraint = (SELECT TOP 1 CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE constraint_catalog=DB_NAME() AND CONSTRAINT_TYPE = 'FOREIGN KEY' AND TABLE_NAME = @name ORDER BY CONSTRAINT_NAME)
WHILE @constraint IS NOT NULL
BEGIN
SELECT @SQL = 'ALTER TABLE [dbo].[' + RTRIM(@name) +'] DROP CONSTRAINT [' + RTRIM(@constraint) +']'
EXEC (@SQL)
PRINT 'Dropped FK Constraint: ' + @constraint + ' on ' + @name
SELECT @constraint = (SELECT TOP 1 CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE constraint_catalog=DB_NAME() AND CONSTRAINT_TYPE = 'FOREIGN KEY' AND CONSTRAINT_NAME <> @constraint AND TABLE_NAME = @name ORDER BY CONSTRAINT_NAME)
END
SELECT @name = (SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE constraint_catalog=DB_NAME() AND CONSTRAINT_TYPE = 'FOREIGN KEY' ORDER BY TABLE_NAME)
END
GO
/* Drop all Primary Key constraints */
DECLARE @name VARCHAR(128)
DECLARE @constraint VARCHAR(254)
DECLARE @SQL VARCHAR(254)
SELECT @name = (SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE constraint_catalog=DB_NAME() AND CONSTRAINT_TYPE = 'PRIMARY KEY' ORDER BY TABLE_NAME)
WHILE @name IS NOT NULL
BEGIN
SELECT @constraint = (SELECT TOP 1 CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE constraint_catalog=DB_NAME() AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND TABLE_NAME = @name ORDER BY CONSTRAINT_NAME)
WHILE @constraint is not null
BEGIN
SELECT @SQL = 'ALTER TABLE [dbo].[' + RTRIM(@name) +'] DROP CONSTRAINT [' + RTRIM(@constraint)+']'
EXEC (@SQL)
PRINT 'Dropped PK Constraint: ' + @constraint + ' on ' + @name
SELECT @constraint = (SELECT TOP 1 CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE constraint_catalog=DB_NAME() AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND CONSTRAINT_NAME <> @constraint AND TABLE_NAME = @name ORDER BY CONSTRAINT_NAME)
END
SELECT @name = (SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE constraint_catalog=DB_NAME() AND CONSTRAINT_TYPE = 'PRIMARY KEY' ORDER BY TABLE_NAME)
END
GO
/* Drop all tables */
DECLARE @name VARCHAR(128)
DECLARE @SQL VARCHAR(254)
SELECT @name = (SELECT TOP 1 [name] FROM sysobjects WHERE [type] = 'U' AND category = 0 ORDER BY [name])
WHILE @name IS NOT NULL
BEGIN
SELECT @SQL = 'DROP TABLE [dbo].[' + RTRIM(@name) +']'
EXEC (@SQL)
PRINT 'Dropped Table: ' + @name
SELECT @name = (SELECT TOP 1 [name] FROM sysobjects WHERE [type] = 'U' AND category = 0 AND [name] > @name ORDER BY [name])
END
GO
Я использую этот сценарий Адама Андерсона, обновленный для поддержки объектов в других схемах, чем dbo.
Источник: сообщение в блоге Адама Андерсона
источник
-- system-versioned tables SELECT @stmt = isnull(@stmt + CHAR(10), '') + 'alter table [' + schema_name(schema_id) + '].[' + name + '] SET ( SYSTEM_VERSIONING = OFF)' FROM sys.tables WHERE TEMPORAL_TYPE = 2;
Лучше всего это сделать « Сгенерировать скрипты для Drop »
Выберите База данных -> Правой кнопкой мыши -> Задачи -> Создать сценарии - откроется мастер для создания сценариев
после выбора объектов в наборе сценариев опции нажмите Advanced Button
-> Установите для параметра «Скрипт для создания» значение true (хотите создать)
-> Установите для параметра « Script to Drop » значение true (хотите удалить)
-> Установите флажок, чтобы выбрать объекты, которые хотите создать скрипт
-> Выберите вариант для написания скрипта (Файл, Новое окно, Буфер обмена)
По умолчанию он включает зависимые объекты (и сначала снимет ограничение)
Выполнить скрипт
Таким образом, мы можем настроить наш скрипт.
источник
Чтобы удалить все таблицы:
Это, конечно, отбросит все ограничения, триггеры и т. Д. Все, кроме хранимых процедур.
Боюсь, что для хранимых процедур вам понадобится другая хранимая процедура, хранящаяся в
master
.источник
stored procedures
и т. д.Я бы сделал это в двух утверждениях:
DROP DATABASE ???
а потом
CREATE DATABASE ???
источник
Я попробовал некоторые сценарии здесь, но они не работали для меня, так как у меня есть таблицы в схемах. Поэтому я собрал следующее. Обратите внимание, что этот скрипт принимает список схем и затем удаляет их последовательно. Вы должны убедиться, что у вас есть полный порядок в ваших схемах. Если есть какие-либо циклические зависимости, то это не удастся.
источник
Резервное копирование полностью пустой базы данных. Вместо того чтобы сбрасывать все объекты, просто восстановите резервную копию.
источник
Вот что я попробовал:
Какой бы вывод он ни печатал, просто скопируйте все и вставьте в новый запрос и нажмите «Выполнить». Это удалит все таблицы.
источник
Я случайно запустил скрипт инициализации db для своей основной базы данных сегодня вечером. В любом случае я быстро наткнулся на эту ветку. Я использовал: exec sp_MSforeachtable 'DROP TABLE?' ответ, но пришлось выполнить его несколько раз, пока не произойдет ошибка (зависимости). После этого я наткнулся на некоторые другие потоки и собрал их вместе, чтобы отбросить все хранимые процедуры и функции.
источник
Попробуй это
источник
В дополнение к ответу @ Ивана, все типы должны быть включены
источник
Вы должны отключить все
triggers
и вconstraints
первую очередь.После этого вы можете сгенерировать скрипты для удаления объектов как
Выполните сгенерированные операторы.
источник
Похоже, довольно опасная особенность для меня. Если бы вы реализовали что-то подобное, я бы позаботился о том, чтобы обеспечить его надлежащую защиту таким образом, чтобы вы не смогли выполнить это в случае аварии.
Как и предлагалось ранее, вы могли бы сделать какую-то хранимую процедуру самостоятельно. В SQL Server 2005 вы можете просмотреть эту системную таблицу, чтобы определить и найти объекты, которые вы хотели бы удалить.
источник
Здесь я нашел новый запрос для удаления всех sp, функций и триггеров
источник
Чтобы добавить к ответу Ивана, у меня также была необходимость отбросить все пользовательские типы, поэтому я добавил это в скрипт:
источник
Нет единого утверждения, которое можно использовать для достижения этой цели.
Конечно
stored procedure
, вы могли бы создать себя, который вы могли бы использовать для выполнения этих различных административных задач.Затем вы можете выполнить процедуру, используя этот единственный оператор.
источник
источник
Чтобы удалить все объекты в Oracle
1) Динамический
2) Статическое
источник
попробуйте это с sql2012 или выше,
это поможет удалить все объекты по выбранной схеме
источник
Другой альтернативой будет:
источник
попробуй это....
источник