Jak zrušit všechny tabulky z databáze serveru SQL Server


Nejlepší odpověď

V SSMS :

Klikněte pravým tlačítkem na databázi

Přejít na „Úkoly“

Klikněte na „Generovat skripty“

V části „Vybrat objekty“ vyberte možnost „Skriptovat celou databázi a všechny databázové objekty“

V části „Nastavit možnosti skriptování“ klikněte na tlačítko „Pokročilé“

Na „Script DROP and CREATE“ přepněte „Script CREATE“ na „Script DROP“ a stiskněte OK

Poté buď uložte do souboru, schránky nebo do nového okna dotazu.

Spustit skript.

Nyní to zruší vše, včetně databáze. Ujistěte se, že jste odstranili kód položek, které nechcete vyhodit. Alternativně v části „Vybrat objekty“ namísto výběru skriptu celé databáze vyberte položky, které chcete odebrat.

Pomocí skriptu :

SET @Cursor = CURSOR FAST\_FORWARD FOR

SELECT DISTINCT sql = "ALTER TABLE [" + tc2.TABLE\_SCHEMA + "].[" + tc2.TABLE\_NAME + "] DROP [" + rc1.CONSTRAINT\_NAME + "];"

FROM INFORMATION\_SCHEMA.REFERENTIAL\_CONSTRAINTS rc1

LEFT JOIN INFORMATION\_SCHEMA.TABLE\_CONSTRAINTS tc2 ON tc2.CONSTRAINT\_NAME =rc1.CONSTRAINT\_NAME

OPEN @Cursor FETCH NEXT FROM @Cursor INTO @Sql

WHILE (@@FETCH\_STATUS = 0)

BEGIN

Exec sp\_executesql @Sql

FETCH NEXT FROM @Cursor INTO @Sql

END

CLOSE @Cursor DEALLOCATE @Cursor

GO

EXEC sp\_MSforeachtable "DROP TABLE ?"

GO

https://stackoverflow.com/questions/8439650/how-to-drop-all-tables-in-a-sql-server-database/43128914

Odpověď

Toto je názorová odpověď od někoho, kdo rozumí současnému IT trhu a technologiím a používá SQL Server i různé další databázové technologie pro přes desetiletí: Budoucnost SQL Serveru bude záviset na budoucnosti používání SQL jako dotazovacího jazyka. Relační systémy pro správu databází, jak je známe, se za poslední dvě desetiletí příliš nezměnily, zatímco téměř každý jiný předmět týkající se výpočetní techniky má. Úspěch SQL spočívá v jeho jednoduchosti a na nižších úrovních abstrakce budeme vždy potřebovat technologii jako je tato. Existuje však několik hrstek, které SQL a RDBMS ve své současné podobě „prostě“ neposkytují. Bojují, když jde o datové typy s metadaty. Představuje toto datum například něčí narozeniny? Představuje tento nvarchar (50) e-mailovou adresu? Představují tyto dvě hodnoty časové období, kde by jedna položka neměla být větší než druhá? SQL Server to zpracovává pomocí spouštěčů, ale při zavádění těchto druhů spouštěčů je zapotřebí tolik časově náročné práce, že podniky často práci přeskočí a místo toho se při řešení tohoto problému spoléhají na softwarové vrstvy. To vytváří nedostatek organizace a konzistence v celém projektu. Nezpracovávají potřeby založené na replikaci abstraktním způsobem. Například dva odpojené systémy musí vytvořit nový záznam v tabulce, jaký nový klíč IDENTITY by měl být vygenerován? Tento problém lze vyřešit pomocí složených klíčů nebo identifikátorů GUID nebo několika jinými způsoby, ale spotřebitele SQL je třeba těmito složitostmi obtěžovat. Nezacházejí s bi-temporálním řízením času abstraktně. Například pokud potřebujete sledovat, co jsme si mysleli, že je to pravda už v červenci 2013, také je třeba ukládat opravená data z roku 2013, která jsme se nenaučili až do roku 2016, vytvoření schématu, které by to zvládlo a udržovalo referenční integritu, je poměrně složité … Již existují návrhy, jak usnadnit řešení tohoto problému, ale současné myšlení ano nevyřeší to. Nedokáží dobře začlenit „Model“ vašich dat. Fyzické schéma neumí dobře popsat jednoduché věci jako „This Boolean hodnota představuje true nebo false. „, nebo“ Toto datum bude pravděpodobně v příštích několika měsících, takže použijte ovládací prvek kalendáře, kde toto další datum bude roky v minulosti, takže použijte rozbalovací nabídky pro mm / dd / rrrr “ . Protože na těchto systémech byly vybudovány četné nástroje „Business Intelligence“ nebo „Reporting“, které poskytují takové schopnosti, ale většina z nich je stále chráněná a mění se rok od roku, protože skvělé řešení ještě nebylo k dispozici všem monopolním způsobem (tak dobrý, že zabíjí konkurenci a nastavuje vlastní standardy). Nezabývají se akceptovanou stálostí dat. Neexistuje snadný způsob, jak určit, když požadujete data, že starší data na serveru v klastru mohou být starý je přijatelný, pokud ho lze najít rychleji. To způsobuje problémy s výkonem a je to jeden z hlavních důvodů, proč se objevovaly databáze „NoSQL“. I když řada „technologií NoSQL“ poskytuje řešení pro malé části tohoto problému, existuje spousta problémů, které prostě nebyly vyřešeny. Například distribuované systémy nepracují dobře s izolací založenou na transakcích, aniž by představovaly hlavní problémy s výkonem.Existují věci, které bychom mohli sdělit, když položíme otázku ohledně našich údajů, například jak stará data jsou přijatelná? Chci být upozorněn, pokud se tyto údaje z nějakého důvodu změní? Je možné, že budu chtít v blízké budoucnosti změnit data, o která žádám, nebo je to prostě jen pro čtení bez budoucího záměru změny? Existuje také řada dalších otázek, ale důležitý bod Tady je to, že budoucnost serveru SQL bude poháněna ekonomikou a dostupností a implementací nových nápadů … Jsem si jist, že máme minimálně 5-8 let, kdy SQL zůstává nejpopulárnějším způsobem, jak položit otázku svá data a požádat o jejich změnu – má však nedostatky a tato oblast výpočtu je způsobena „novou velkou věcí“. Pokroky v rychlosti disku, velikosti disku za cenu, velikosti RAM za cenu a pravděpodobně ze všeho nejvíc ze všeho je myšlenka použití „cloud computingu“ pomocí horizontálního měřítka místo vertikálního měřítka – to vše jsou nové proměnné ve světě dat, se kterými se softwarová architektura stále potýká dohnat. Budoucnost SQL Serveru je: postupná, ale udržitelná změna k efektivnějšímu způsobu práce s našimi daty. Je pravděpodobné, že uvidíte změnu názvu a posun od SQL jako dotazovacího jazyka a směrem k výkonnějšímu jazyku, který lépe řeší problémy, se kterými se moderní softwarový architekt setkává.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *