Slik slipper du alle tabeller fra en SQL Server-database


Beste svaret

In SSMS :

Høyreklikk databasen

Gå til «Oppgaver»

Klikk «Generer skript»

I delen «Velg objekter» velger du «Skript hele databasen og alle databaseobjekter»

I delen «Angi skriptalternativer» klikker du på «Avansert» -knappen

På «Script DROP and CREATE» bytter du «Script CREATE» til «Script DROP» og trykker på OK

Lagre deretter i fil, utklippstavle eller nytt spørringsvindu.

Kjør skript.

Nå vil dette slippe alt, inkludert databasen. Sørg for å fjerne koden for elementene du ikke vil ha droppet. Alternativt, i delen «Velg objekter», i stedet for å velge å skript hele databasen, velg bare elementene du vil fjerne.

Ved hjelp av skript :

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 meningsbasert svar fra noen som forstår dagens IT-marked og teknologier og har brukt SQL Server samt forskjellige andre databaseteknologier for over en tiår: Fremtiden til SQL Server vil avhenge av fremtiden for bruk av SQL som spørrespråk. Relasjonelle databasestyringssystemer som vi kjenner dem, har egentlig ikke endret seg mye de siste to tiårene, mens omtrent alle andre emner knyttet til databehandling har gjort det. SQL-suksessen er enkelhet og på lavere abstraksjonsnivå vil vi alltid trenge en teknologi som denne. Det er imidlertid en håndfull behov som SQL og RDBMS ikke bare gir i sin nåværende form. De sliter når det gjelder datatyper med metadata. For eksempel, representerer denne datoen noen som har bursdag? Representerer denne nvarchar (50) en e-postadresse? Representerer disse to verdiene et datoperiode der det ene elementet ikke skal være større enn det andre? SQL Server håndterer dette med utløsere, men det er SÅ MYE tidkrevende arbeid involvert i å få denne typen utløsere på plass at bedrifter ofte hopper over arbeidet og stoler på programvarelag for å løse dette problemet i stedet. Dette skaper mangel på organisering og konsistens gjennom et prosjekt. De håndterer ikke replikasjonsbaserte behov på en abstrakt måte. For eksempel, to frakoblede systemer trenger å opprette en ny post i en tabell, hvilken ny IDENTITY-nøkkel skal genereres? Dette problemet kan løses ved å bruke sammensatte nøkler eller GUID-er eller en håndfull andre måter, men forbrukeren av SQL må plages av disse kompleksitetene. De håndterer ikke bi-tidsmessig tidsstyring på en abstrakt måte. For eksempel hvis du trenger å holde rede på hva vi trodde var sannheten tilbake i juli 2013, men må også lagre korrigerte data om 2013 som vi ikke lærte før i 2016, og det er ganske komplisert å lage et skjema for å håndtere det og opprettholde referanseintegritet … Det er allerede forslag til hvordan du kan gjøre dette problemet lettere å håndtere, men dagens tankesett gjør ikke løse det. De gjør ikke en god jobb med å innlemme en «modell» av dataene dine. Det fysiske skjemaet gjør ikke en god jobb med å beskrive enkle ting som «Denne boolske verdien representerer en sann eller usann. «, eller» Denne datoen vil sannsynligvis være i løpet av de neste månedene, så bruk en kalenderkontroll der denne andre datoen kommer til å være år tidligere, så bruk rullegardiner for mm / dd / åååå » . Som så mange «Business Intelligence» eller «rapporteringsverktøy» har blitt bygget på toppen av disse systemene for å gi en slik mulighet, men de fleste av disse er fremdeles proprietære og endrer seg år etter år, ettersom en god løsning ennå ikke har blitt gjort tilgjengelig for alle på en monopolistisk måte (så bra at det dreper konkurransen og setter sine egne standarder). De håndterer ikke akseptert stalenhet av data. Det er ingen enkel måte å indikere når du ber om data om at eldre data i en server i en klynge kan være gammelt er akseptabelt hvis det kan bli funnet raskere. Dette forårsaker ytelsesproblemer og er en av de viktigste årsakene til at «NoSQL» -databaser har dukket opp. Mens mange «NoSQL-teknologier» gir løsninger for små deler av dette problemet, er det mange problemer som ganske enkelt ikke er løst. For eksempel fungerer ikke distribuerte systemer godt med transaksjonsbasert isolasjon uten å innføre store ytelsesproblemer.Det er ting vi kan kommunisere når vi stiller et spørsmål om dataene våre, for eksempel hvor gammel data er akseptabelt? Ønsker jeg å bli varslet hvis disse dataene endres av en eller annen grunn? Er det mulig at jeg ønsker å endre dataene jeg ber om i nær fremtid, eller er dette bare en lesing uten fremtidig hensikt for endring? Det er også mange andre problemer, men det viktige poenget her er at fremtiden til SQL Server vil være drevet av økonomien og tilgjengeligheten og implementeringen av nye ideer … Jeg er sikker på at vi har minimum 5-8 år hvor SQL fortsatt er den mest populære måten å stille et spørsmål om dataene dine og be om at dataene dine endres – men det har mangler, og dette databehandlingsområdet skyldes en «Ny stor ting.» Fremskritt i diskhastighet, diskstørrelse for kostnad, ramstørrelse for kostnad, og sannsynligvis mest ideen om å bruke «cloud computing» ved å skalere horisontalt i stedet for vertikalt, er alle nye variabler i dataverdenen som programvarearkitektur fortsatt sliter med ta igjen. Fremtiden til SQL Server er: gradvis, men bærekraftig endring til en mer effektiv måte å jobbe med dataene våre på. Det er sannsynlig at navnet blir endret og en dreining bort fra SQL som et spørrespråk og mot et kraftigere språk som gjør en bedre jobb med å løse problemene som den moderne programvarearkitekten blir presentert for.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *