Toon posts:

Leegmaken tabellen in MSSQL database "again"

Pagina: 1
Acties:
  • 316 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Don't know why but my prior topic was closed.


Hoe kun je in één keer (of via een script of php) alle tabellen in MSSQL database leegmaken (dus alle records er uit, structuur blijft bestaan)?


LET OP! Het gaat dus om ALLE tabellen. Mijn probleem is dat mijn database een PAAR HONDERD tabellen bevat en die kan ik dus niet één voor één gaan Truncate.

In MySQL kun je misschien hier het statement
truncate (show tabels)
voor gebruiken, maar in MSSQL bestaat het show statement niet.

"MyAdmin" is denk ik niet mogelijk omdat dit alleen op een MySQL database werkt.

  • JohanDM
  • Registratie: Augustus 2002
  • Laatst online: 16-07-2021

JohanDM

Optimist

Je kan met een select in SQL Query Analyzer een script genereren en dat daarna uitvoeren
SQL:
1
2
3
SELECT 'TRUNCATE TABLE ' + TABLE_NAME
FROM [INFORMATION_SCHEMA].[TABLES]
WHERE TABLE_TYPE = 'BASE TABLE'

"Two things are infinite: the universe and stupidity. And the former I'm not so sure about." -- Albert Einstein


  • mOrPhie
  • Registratie: September 2000
  • Laatst online: 20-08 15:04

mOrPhie

❤️❤️❤️❤️🤍

Gebruik SP_Tables en fetch die met een Cursor.

In de cursor doe je per record de tabelnaam eruit halen en daar een truncate op doen. Let er wel op dat je tabelnamen beginnend met "sys" ontziet. Want SP_Tables geeft ook de systeemtabellen terug.


Ps. Je topic was gesloten omdat er te weinig info in stond waarschijnlijk. Dit maal was je topic een stuk completer. :)

[ Voor 23% gewijzigd door mOrPhie op 24-01-2003 18:50 ]

Een experimentele community-site: https://technobabblenerdtalk.nl/. DM voor invite code.


  • Buzzman
  • Registratie: Juni 2000
  • Niet online
mOrPhie schreef op 24 januari 2003 @ 18:49:
Gebruik SP_Tables en fetch die met een Cursor.

Dat kan ook met
code:
1
2
3
select name 
from sysobjects 
where xtype = 'u'

:)

  • mOrPhie
  • Registratie: September 2000
  • Laatst online: 20-08 15:04

mOrPhie

❤️❤️❤️❤️🤍

Buzzman schreef op 24 January 2003 @ 18:53:

[...]

Dat kan ook met
code:
1
2
3
select name 
from sysobjects 
where xtype = 'u'

:)
Da's waar, veel verschil maakt het niet, het ging em in dit geval om de cursor :)

Een experimentele community-site: https://technobabblenerdtalk.nl/. DM voor invite code.


Verwijderd

Topicstarter
bedankt,

In de in SQL Query Analyzer kun je aangeven dat je een statement uit wilt voeren op user tabellen. Dus heb ik gebruik gemaakt van

SELECT 'TRUNCATE TABLE ' + TABLE_NAME
FROM [INFORMATION_SCHEMA].[TABLES]
WHERE TABLE_TYPE = 'BASE TABLE'

Werkt.

Thanks (all) :) .
Pagina: 1