Cum se elimină toate tabelele dintr-o bază de date SQL Server


Cel mai bun răspuns

În SSMS :

Faceți clic dreapta pe baza de date

Accesați „Activități”

Faceți clic pe „Generați scripturi”

În secțiunea „Alegeți obiecte”, selectați „Script întreaga bază de date și toate obiectele bazei de date”

În secțiunea „Setare opțiuni de scriptare”, faceți clic pe butonul „Avansat”

La „Script DROP and CREATE” comutați „Script CREATE” la „Script DROP” și apăsați OK

Apoi, fie salvați în fișier, clipboard sau fereastră nouă de interogare.

Rulați scriptul.

Acum, aceasta va renunța la toate, inclusiv la baza de date. Asigurați-vă că eliminați codul pentru articolele pe care nu doriți să le eliminați. Alternativ, în secțiunea „Alegeți obiecte”, în loc să selectați pentru a crea întreaga bază de date, selectați doar elementele pe care doriți să le eliminați.

Prin ajutorul scriptului :

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

Răspuns

Acesta este un răspuns bazat pe opinie de la cineva care înțelege piața IT actuală și tehnologiile și a folosit SQL Server, precum și diverse alte tehnologii de baze de date pentru peste deceniu: Viitorul SQL Server va depinde de viitorul utilizării SQL ca limbaj de interogare. Sistemele relaționale de gestionare a bazelor de date, așa cum le cunoaștem, nu s-au schimbat prea mult în ultimele două decenii, în timp ce aproape orice alt subiect legat de calcul s-a schimbat. Succesul SQL constă în simplitatea sa și la niveluri mai mici de abstractizare vom avea întotdeauna nevoie de o tehnologie ca aceasta. Cu toate acestea, există o mână de nevoi pe care SQL și RDBMS „pur și simplu nu le oferă în forma lor actuală. Se luptă când vine vorba de tipuri de date cu metadate. De exemplu, această dată reprezintă ziua de naștere a cuiva? Acest nvarchar (50) reprezintă o adresă de e-mail? Aceste două valori reprezintă un interval de date în care un articol nu ar trebui să fie mai mare decât celălalt? SQL Server gestionează acest lucru cu declanșatoare, dar este atât de mult consumator de timp implicat în punerea în funcțiune a acestui tip de declanșatoare, încât întreprinderile trec adesea de la muncă și se bazează pe straturile software pentru a rezolva această problemă. Acest lucru creează o lipsă de organizare și consecvență pe tot parcursul unui proiect. Nu gestionează nevoile bazate pe replicare într-un mod abstract. De exemplu, două sisteme deconectate trebuie să creeze o nouă înregistrare într-un tabel, ce cheie nouă de IDENTITATE ar trebui generată? Această problemă poate fi rezolvată utilizând chei compozite sau GUID-uri sau o mână de alte moduri, dar consumatorul de SQL trebuie să fie deranjat de aceste complexități. Acestea nu gestionează gestionarea timpului bi-temporală într-un mod abstract. De exemplu, dacă trebuie să țineți evidența a ceea ce credeam că este adevărul în iulie 2013, dar De asemenea, trebuie să stocați date corectate despre 2013 pe care nu le-am învățat până în 2016, crearea unei scheme pentru a face față acestui lucru și pentru a menține integritatea referențială este destul de complexă … Există deja propuneri despre cum să faceți această problemă mai ușor de tratat, dar mentalitatea actuală nu nu o rezolva. Ei nu fac o treabă bună de a încorpora un „Model” al datelor dvs. Schema fizică nu face o treabă bună de a descrie lucruri simple precum „Acest Boolean valoarea reprezintă un adevărat sau fals. „, sau” Această dată va fi probabil în următoarele câteva luni, așa că utilizați un control calendar în care această altă dată va fi cu ani în trecut, așa că utilizați meniurile drop-down pentru mm / zz / aaaa ” . Ca atare, numeroase instrumente de „Business Intelligence” sau „raportare” au fost construite pe deasupra acestor sisteme pentru a oferi o astfel de capacitate, dar cele mai multe dintre acestea sunt încă proprietare și se schimbă an de an, deoarece o soluție excelentă nu a fost încă pusă la dispoziția tuturor într-un mod monopolist (atât de bun încât ucide concurența și își stabilește propriile standarde). Ele nu se ocupă de stalitatea acceptată a datelor. Nu există o modalitate ușoară de a indica când solicitați date că datele mai vechi dintr-un server dintr-un cluster care ar putea fi vechi este acceptabil dacă poate fi găsit mai repede. Acest lucru cauzează probleme de performanță și este unul dintre principalele motive pentru care au apărut bazele de date „NoSQL”. În timp ce numeroase „tehnologii NoSQL” oferă soluții pentru părți minuscule ale acestei probleme, există o mulțime de probleme care pur și simplu nu au fost rezolvate. De exemplu, sistemele distribuite nu funcționează bine cu izolarea bazată pe tranzacții fără a introduce probleme majore de performanță.Există lucruri pe care le-am putea comunica atunci când punem o întrebare despre datele noastre, cum ar fi, cât de vechi din date este acceptabil? Vreau să fiu informat dacă aceste date se modifică din orice motiv? Este posibil să vreau să schimb datele pe care le cer în viitorul apropiat sau este pur și simplu doar o citire fără intenții viitoare de schimbare? Există și alte numeroase probleme, dar punctul important iată că viitorul SQL Server va fi condus de economie și disponibilitatea și implementarea de idei noi … Sunt sigur că avem un minim de 5-8 ani în care SQL rămâne cel mai popular mod de a pune o întrebare de datele dvs. și să solicitați modificarea datelor dvs. – dar are deficiențe și acest domeniu al calculului se datorează unui „nou lucru mare”. Progresele în ceea ce privește viteza discului, dimensiunea discului pentru cost, dimensiunea RAM pentru cost și probabil cea mai mare parte a ideii de a utiliza „cloud computing” prin scalare orizontală în loc de verticală sunt toate variabilele noi din lumea datelor pe care arhitectura software încă le luptă pune la curent cu. Viitorul SQL Server este: schimbarea treptată, dar durabilă, către un mod mai eficient de lucru cu datele noastre. Este probabil să se vadă o schimbare de nume și un pivot departe de SQL ca limbaj de interogare și către un limbaj mai puternic, care să rezolve mai bine problemele cu care este prezentat arhitectul software modern.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *