Alle tabellen uit een SQL Server-database verwijderen


Beste antwoord

In SSMS :

Klik met de rechtermuisknop op de database

Ga naar “Tasks”

Klik op “Generate Scripts”

Selecteer in het gedeelte “Objecten kiezen” de optie “Volledige database en alle databaseobjecten scripten”.

Klik in het gedeelte “Scriptopties instellen” op de knop “Geavanceerd”

Schakel bij “Script DROP en CREATE” “Script CREATE” naar “Script DROP” en druk op OK.

Bewaar vervolgens naar een bestand, klembord of nieuw zoekvenster.

Run script.

Nu zal dit alles laten vallen, inclusief de database. Zorg ervoor dat u de code verwijdert voor de items die u niet wilt laten vallen. Als alternatief kunt u in de sectie “Objecten kiezen” in plaats van te selecteren om de volledige database te scripten, gewoon de items selecteren die u wilt verwijderen.

Met behulp van script :

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

Antwoord

Dit is een op meningen gebaseerd antwoord van iemand die de huidige IT-markt en -technologieën begrijpt en SQL Server en verschillende andere databasetechnologieën heeft gebruikt voor over een decennium: de toekomst van SQL Server zal afhangen van de toekomst van het gebruik van SQL als querytaal. Relationele databasebeheersystemen zoals we die kennen, zijn de afgelopen twee decennia niet echt veel veranderd, terwijl zowat elk ander onderwerp met betrekking tot computers dat wel is. Het succes van SQL zit hem in zijn eenvoud en op lagere abstractieniveaus zullen we altijd een technologie als deze nodig hebben. Er zijn echter een handvol behoeften die SQL en RDBMS in hun huidige vorm “eenvoudigweg niet bieden”. Ze worstelen als het gaat om datatypes met metadata. Staat deze datum bijvoorbeeld voor iemands verjaardag? Vertegenwoordigt deze nvarchar (50) een e-mailadres? Vertegenwoordigen deze twee waarden een datumbereik waarin het ene item niet groter mag zijn dan het andere? SQL Server verwerkt dit met triggers, maar er is ZO VEEL tijdrovend werk om dit soort triggers op hun plaats te krijgen dat bedrijven het werk vaak overslaan en vertrouwen op softwarelagen om dit probleem op te lossen. Dit zorgt voor een gebrek aan organisatie en consistentie gedurende een project. Ze behandelen op replicatie gebaseerde behoeften niet op een geabstraheerde manier. Als bijvoorbeeld twee niet-verbonden systemen een nieuw record in een tabel moeten maken, welke nieuwe IDENTITY-sleutel moet dan worden gegenereerd? Dit probleem kan worden opgelost door samengestelde sleutels of GUIDs of een handvol andere manieren te gebruiken, maar de gebruiker van SQL moet last hebben van deze complexiteit. Ze behandelen bi-temporeel tijdbeheer niet op een geabstraheerde manier. Bijvoorbeeld als u in juli 2013 wilt bijhouden wat we dachten dat de waarheid was, maar moeten ook gecorrigeerde gegevens over 2013 opslaan die we pas in 2016 leerden, het maken van een schema om daarmee om te gaan en de referentiële integriteit te behouden is vrij complex … Er zijn al voorstellen om dit probleem gemakkelijker te verhelpen, maar de huidige mindset doet dat niet oplossen. Ze zijn niet goed in het opnemen van een model van uw gegevens. Het fysieke schema beschrijft niet goed eenvoudige dingen als Deze booleaanse waarde waarde staat voor waar of onwaar. “, of” Deze datum zal waarschijnlijk in de komende maanden vallen, dus gebruik een kalenderbesturingselement waar deze andere datum jaren in het verleden zal zijn, dus gebruik vervolgkeuzemenus voor mm / dd / jjjj ” . Als zodanig zijn er tal van Business Intelligence- of rapportage-tools bovenop deze systemen gebouwd om dergelijke mogelijkheden te bieden, maar de meeste hiervan zijn nog steeds eigendom van en veranderen jaar na jaar omdat er nog geen geweldige oplossing beschikbaar moet zijn voor iedereen. op een monopolistische manier (zo goed dat het de concurrentie doodt en zijn eigen normen bepaalt). Ze hebben geen betrekking op geaccepteerde veroudering van gegevens. Er is geen gemakkelijke manier om aan te geven dat wanneer u om gegevens vraagt, oudere gegevens op een server binnen een cluster die mogelijk zijn oud is acceptabel als het sneller kan worden gevonden. Dit veroorzaakt prestatieproblemen en is een van de belangrijkste redenen dat “NoSQL” -databases opduiken. Hoewel talrijke “NoSQL-technologieën” oplossingen bieden voor kleine onderdelen van dit probleem, zijn er tal van problemen die simpelweg niet zijn opgelost. Gedistribueerde systemen werken bijvoorbeeld niet goed met op transacties gebaseerde isolatie zonder belangrijke prestatieproblemen te introduceren.Er zijn dingen die we zouden kunnen communiceren als we een vraag stellen over onze gegevens, zoals: hoe oud is de gegevens aanvaardbaar? Wil ik op de hoogte worden gehouden als deze gegevens om welke reden dan ook veranderen? Is het mogelijk dat ik de gegevens waar ik om vraag in de nabije toekomst wil wijzigen of is dit gewoon een read-only zonder toekomstige intentie voor verandering? Er zijn ook tal van andere kwesties, maar het belangrijke punt hier is dat de toekomst van SQL Server zal worden aangedreven door de economie en de beschikbaarheid en implementatie van nieuwe ideeën … Ik weet zeker dat we een minimum van 5-8 jaar hebben waarin SQL de meest populaire manier blijft om een ​​vraag te stellen over uw gegevens en om te vragen om uw gegevens te wijzigen – maar het heeft tekortkomingen en dit gebied van computergebruik is toe aan een “nieuw groot ding”. Vooruitgang in schijfsnelheid, schijfgrootte voor kosten, ramgrootte voor kosten, en waarschijnlijk vooral het idee om “cloud computing” te gebruiken door horizontaal te schalen in plaats van verticaal zijn allemaal nieuwe variabelen in de wereld van gegevens waar de softwarearchitectuur nog steeds moeite mee heeft. inhalen. De toekomst van SQL Server is: geleidelijke maar duurzame verandering naar een efficiëntere manier van werken met onze data. Het is waarschijnlijk dat er een naamswijziging zal plaatsvinden en dat er een verschuiving optreedt van SQL als een zoektaal naar een krachtigere taal die de problemen waarmee de moderne software-architect wordt geconfronteerd, beter oplost.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *