2016-04-21 9 views
0

Wie eine truncate-Anweisung für mehrere Datenbanken auf einmal mit SQL Server tun?So machen Sie eine truncate-Anweisung für mehrere Datenbanken gleichzeitig mit SQL Server

+0

Wie viele Tische reden wir? –

+0

"... auf einmal ..." Wenn dies parallel geschieht (und gegeben, wie schnell ein trunkate ist, kann ich mir nicht vorstellen, warum es so wäre), könnte man SSIS verwenden. Sind die Datenbanken alle auf demselben Server? – DatumPoint

+0

** 200-800 Tabelle für jede Datenbank, 90G DB Größe, 20G, 120G ** Das Skript das folgende ** und table_name wie beinhaltet 't _%' ** und table_name nicht wie 't_ref_%' und table_name nicht wie 't_co_processhistory_archive' –

Antwort

0

Unten Anweisung wird sich um Schleife durch alle DBs und suchen Sie nach einer bestimmten Tabelle und die Daten abgeschnitten.

exec sp_MSforeachdb 'use ?; if exists (select ''x'' from sysobjects where name =''test1'') TRUNCATE TABLE TEST1' 
2

„eine truncate Aussage“ ... „auf einmal“

Es ist nicht möglich, eine einzelne Anweisung auszuführen, die auf einmal mehrere Tabellen auf mehrere Datenbanken gestutzt werden.

Am nächsten ist das Wiederherstellen einer Sicherungskopie einer sauberen (alle Tabellen leer) Kopie der Datenbank. Und auch das muss einmal pro Datenbank gemacht werden.