ten skrypt czyści wszystkie widoki, SPS, funkcje PK, FK i tabele.
/* 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
Używam tego skryptu autorstwa Adama Andersona, zaktualizowanego do obsługi obiektów w innych schematach niż dbo.
Źródło: post na blogu Adama Andersona
źródło
-- 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;
Najlepszą rzeczą do tego jest „ Generowanie skryptów dla Drop ”
Wybierz Baza danych -> Kliknij prawym przyciskiem myszy -> Zadania -> Generuj skrypty - otworzy się kreator do generowania skryptów
po wybraniu obiektów w zestawie opcji skryptów kliknij Zaawansowane przycisk
-> Ustaw opcję „Script to create” na true (chcesz utworzyć)
-> Ustaw opcję „ Skrypt do upuszczenia ” na true (chcesz upuścić)
-> Zaznacz pole wyboru, aby wybrać obiekty, które chcesz utworzyć skrypt
-> Wybierz opcję pisania skryptu (Plik, Nowe okno, Schowek)
Domyślnie zawiera obiekty zależne (i najpierw usunie ograniczenie)
Wykonaj skrypt
W ten sposób możemy dostosować nasz skrypt.
źródło
Aby usunąć wszystkie tabele:
Spowoduje to oczywiście usunięcie wszystkich ograniczeń, wyzwalaczy itp., Wszystkiego oprócz procedur przechowywanych.
Obawiam się, że do procedur przechowywanych potrzebna będzie inna procedura przechowywana
master
.źródło
stored procedures
itp.Zrobiłbym to w dwóch stwierdzeniach:
DROP DATABASE ???
i wtedy
CREATE DATABASE ???
źródło
Próbowałem tutaj trochę skryptu, ale one nie działały dla mnie, ponieważ mam swoje tabele w schematach. Więc zestawiłem następujące. Zauważ, że ten skrypt pobiera listę schematów i upuszcza kolejno. Musisz upewnić się, że masz kompletne zamówienie w swoich schematach. Jeśli są jakieś zależności cykliczne, to zawiedzie.
źródło
Utwórz kopię zapasową całkowicie pustej bazy danych. Zamiast upuszczać wszystkie obiekty, po prostu przywróć kopię zapasową.
źródło
Oto, co próbowałem:
Bez względu na to, jakie dane wyjściowe wydrukuje, po prostu skopiuj wszystko i wklej nowe zapytanie i naciśnij klawisz wykonania. Spowoduje to usunięcie wszystkich tabel.
źródło
Dziś wieczorem przypadkowo uruchomiłem skrypt inicjujący db przeciwko mojej głównej bazie danych. W każdym razie szybko wpadłem na ten wątek. Użyłem: exec sp_MSforeachtable 'DROP TABLE?' odpowiedź, ale musiałem ją wykonać wiele razy, dopóki nie popełnił błędu (zależności). Następnie natknąłem się na inne wątki i poskładałem to razem, aby usunąć wszystkie przechowywane procedury i funkcje.
źródło
Spróbuj tego
źródło
Oprócz odpowiedzi @ Ivana należy podać wszystkie typy
źródło
Trzeba wyłączyć wszystko
triggers
iconstraints
pierwszy.Następnie możesz wygenerować skrypty do usuwania obiektów jako
Wykonaj wygenerowane instrukcje.
źródło
Wydaje mi się to dość niebezpieczną cechą. Jeśli wdrożysz coś takiego, upewnię się, że odpowiednio go zabezpieczysz, tak abyś nie był w stanie uruchomić tego na wypadek.
Jak zasugerowano wcześniej, możesz samodzielnie wykonać procedurę składowaną. W SQL Server 2005 możesz zajrzeć do tej tabeli systemowej, aby określić i znaleźć obiekty, które chcesz upuścić.
źródło
Tutaj znalazłem nowe zapytanie, aby usunąć wszystkie sp, funkcje i wyzwalacze
źródło
Aby dodać do odpowiedzi Ivana, musiałem również usunąć wszystkie typy zdefiniowane przez użytkownika, więc dodałem to do skryptu:
źródło
Nie ma jednego stwierdzenia, którego można by użyć do osiągnięcia tego celu.
Możesz oczywiście stworzyć siebie
stored procedure
której możesz użyć do wykonywania tych różnych zadań administracyjnych.Następnie możesz wykonać procedurę za pomocą tej pojedynczej instrukcji.
źródło
źródło
Aby usunąć wszystkie obiekty z Oracle:
1) Dynamiczny
2) statyczny
źródło
spróbuj tego z sql2012 lub nowszym,
pomoże to usunąć wszystkie obiekty według wybranego schematu
źródło
Inną alternatywą byłoby:
źródło
Spróbuj tego....
źródło