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 {}
}
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 {}
}
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 211504
Url: https://administrator.de/forum/leere-tabellen-abfragen-und-loeschen-mssql-211504.html
Ausgedruckt am: 23.12.2024 um 08:12 Uhr
1 Kommentar
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.
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
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 ''?'' '
siehe auch:http://blogs.inkeysolutions.com/2011/05/find-all-empty-tables-in-sql-se ...
Grüße Uwe