Sådan slettes alle tabeller fra en SQL Server-database


Bedste svar

I SSMS :

Højreklik på databasen

Gå til “Opgaver”

Klik på “Generer scripts”

I afsnittet “Vælg objekter” skal du vælge “Script hele databasen og alle databaseobjekter”

I afsnittet “Indstil scriptingindstillinger” skal du klikke på knappen “Avanceret”

På “Script DROP og CREATE” skift “Script CREATE” til “Script DROP” og tryk på OK

Gem derefter enten i fil, udklipsholder eller nyt forespørgselsvindue.

Kør script.

Nu vil dette slippe alt inklusive databasen. Sørg for at fjerne koden for de emner, du ikke vil have droppet. Alternativt skal du i afsnittet “Vælg objekter” i stedet for at vælge at script hele databasen vælge de emner, du vil fjerne.

Ved hjælp af 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

Svar

Dette er et meningsbaseret svar fra nogen, der forstår det nuværende it-marked og teknologier og har brugt SQL Server samt forskellige andre databaseteknologier til over en årti: Fremtiden for SQL Server afhænger af fremtiden for brugen af ​​SQL som forespørgselssprog. Relationelle databasestyringssystemer, som vi kender dem, har ikke rigtig ændret sig meget i løbet af de sidste to årtier, mens næsten alle andre emner relateret til computing har gjort det. SQL succes er, at det er enkelhed, og ved lavere abstraktionsniveauer har vi altid brug for en teknologi som denne. Der er dog en håndfuld behov, som SQL og RDBMS “simpelthen ikke leverer i deres nuværende form. De kæmper, når det kommer til datatyper med metadata. F.eks. repræsenterer denne dato nogens fødselsdag? Representerer denne nvarchar (50) en e-mail-adresse? Repræsenterer disse to værdier et datointerval, hvor det ene element ikke skal være større end det andet? SQL Server håndterer dette med udløsere, men der er SÅ MEGET tidskrævende arbejde involveret i at få denne slags udløsere på plads, at virksomheder ofte springer over arbejdet og stoler på softwarelag for at løse dette problem i stedet. Dette skaber en mangel på organisation og konsistens gennem hele et projekt. De håndterer ikke replikeringsbaserede behov på en abstrakt måde. For eksempel skal to frakoblede systemer oprette en ny post i en tabel, hvilken ny IDENTITET-nøgle skal genereres? Dette problem kan løses ved hjælp af sammensatte nøgler eller GUIDer eller en håndfuld andre måder, men forbrugeren af ​​SQL skal være generet af disse kompleksiteter. De håndterer ikke bi-tidsmæssig tidsstyring på en abstrakt måde. For eksempel hvis du har brug for at holde styr på, hvad vi troede var sandheden tilbage i juli 2013, men har også brug for at gemme korrigerede data om 2013, som vi ikke lærte før i 2016, at skabe et skema til at håndtere det og opretholde referentiel integritet er ret komplekst … Der er allerede forslag til, hvordan man gør dette problem lettere at håndtere, men nuværende tankegang ikke løse det. De gør ikke et godt stykke arbejde med at inkorporere en “model” af dine data. Det fysiske skema gør ikke et godt stykke arbejde med at beskrive enkle ting som “Denne boolske værdi repræsenterer en sand eller falsk. “, eller” Denne dato vil sandsynligvis være i de næste par måneder, så brug en kalenderkontrol, hvor denne anden dato vil være år i fortiden, så brug dropdown til mm / dd / åååå ” . Som sådan er der bygget adskillige “Business intelligence” eller “rapporterings” værktøjer oven på disse systemer for at give en sådan kapacitet, men de fleste af disse er stadig proprietære og ændrer sig år efter år, da en god løsning endnu ikke er gjort tilgængelig for alle på en monopolistisk måde (så god, at det dræber konkurrencen og sætter sine egne standarder). De beskæftiger sig ikke med accepteret stalenhed af data. Der er ingen nem måde at angive, når du beder om data om, at ældre data i en server i en klynge kan være gamle er acceptabelt, hvis det kan findes hurtigere. Dette forårsager ydeevneproblemer og er en af ​​de primære grunde til, at “NoSQL” -databaser har været ved at dukke op. Mens mange “NoSQL-teknologier” giver løsninger til små dele af dette problem, er der masser af problemer, der simpelthen ikke er blevet løst. For eksempel fungerer distribuerede systemer ikke godt med transaktionsbaseret isolering uden at indføre større præstationsproblemer.Der er ting, vi kunne kommunikere, når vi stiller et spørgsmål om vores data, f.eks. Hvor gammel af data er acceptabelt? Ønsker jeg at blive underrettet, hvis disse data af en eller anden grund ændres? Er det muligt, at jeg vil ændre de data, som jeg beder om i den nærmeste fremtid, eller er dette simpelthen kun en læsning uden fremtidig hensigt om ændring? Der er også mange andre spørgsmål, men det vigtige punkt her er, at fremtiden for SQL Server vil være drevet af økonomien og tilgængeligheden og implementeringen af ​​nye ideer … Jeg er sikker på, at vi har et minimum på 5-8 år, hvor SQL fortsat er den mest populære måde at stille et spørgsmål om dine data og bede om, at dine data ændres – men de har mangler, og dette område af computing skyldes en “Ny stor ting.” Fremskridt i diskhastighed, diskstørrelse til pris, ramstørrelse til pris og sandsynligvis mest ideen om at bruge “cloud computing” ved at skalere vandret i stedet for lodret, er alle nye variabler i dataverdenen, som softwarearkitektur stadig kæmper for indhente. Fremtiden for SQL Server er: gradvis, men bæredygtig ændring til en mere effektiv måde at arbejde med vores data på. Det vil sandsynligvis se en navneændring og en drejning væk fra SQL som et forespørgselssprog og mod et mere kraftfuldt sprog, der gør det bedre at løse de problemer, som den moderne softwarearkitekt præsenteres for.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *