speckles
Goto Top

Leere Tabellen abfragen und löschen (MSSQL)

Hi,
ich bin auf der Suche nach einer Lösung für meinen MS SQL Sever 2008 R2 mit ca. 2000 Tabellen, die teilweise leer sind (ohne Datensatz).

Genau diese leeren Tabellen würde ich gerne löschen. Auf der Suche nach einem Script bin ich immer wieder auf Abfragen gestoßen, die zwar eine Tabelle leeren im Zusammenhang alle Datensätze der Tabelle zu löschen, aber ich möchte, wenn die Tabelle keinen Datensatz enthält komplett löschen.

Ich hoffe ihr könnt mich dabei unterstützen, da ich leider nicht der Größe Programmierer bin.

Im Kopf hatte ich mir schon solch eine Prozedur ausgedacht (ich versuchs mal in Pseudocode).


int i = dbo.length (auslesen anzahl Tabellen)
int x = 0

while (x < i)
{
if (dbo.length.aktuellerDatensatz = 0)
{
x++;
drop table dbo.aktuelleTabelle}
else {}
}

Content-Key: 211504

Url: https://administrator.de/contentid/211504

Ausgedruckt am: 28.03.2024 um 08:03 Uhr

Mitglied: colinardo
colinardo 15.07.2013 aktualisiert um 13:46:04 Uhr
Goto Top
Hallo speckles,
da gibt es in MS SQL Server doch eine undokumentierte Sonderfunktion:
Führe mal folgenden Code aus, er sollte dir alle leeren Tabellen anzeigen.
EXEC sp_MSforeachtable 'IF NOT EXISTS (SELECT 1 FROM ?) PRINT ''?'' '
Wenn das Ergebnis korrekt aussieht kannst du das PRINT durch ein DROP TABLE ersetzen.

siehe auch:http://blogs.inkeysolutions.com/2011/05/find-all-empty-tables-in-sql-se ...

Grüße Uwe