Frage zum verschieben einer Tabelle (SQL2005)

02/04/2008 - 11:42 von Jo Michael | Report spam
Hallo zusammen,

ich möchte ein paar Tabellen in eine andere Speichergruppe verschieben.
Die Speichergruppe hab ich bereits erstellt.

Angenommen ich hab ne Tabelle mit einem gruppierten Index, dann kann ich das
ja so machen:
begin transaction
alter table [Tabelle1]
drop constraint [PK_Tabelle1]
with (move to [Speichergruppe1])
alter table [Tabelle1] with nocheck
add constraint [PK_Tabelle1]
primary key clustered (c1, ident) on [Speichergruppe1]
commit transaction

Soweit so gut, aber wenn ich jetzt keinen gruppierten Index habe...wie mach
ich das dann?
So wie ich das verstehe wird die Tabelle in die Speichergruppe verschoben in
der auch der
gruppierte Index liegt.
Aber wenn ich gar keinen Index habe/will?
Gibt es auch eine einfache Möglichkeit die Tabelle inkl. Index zu
verschieben ohne das ich den
Index vorher lösche und neue erstelle (mit SQL2005)? Sowas wie Tabelle wird
verschoben mit allen Indizes (egal ob gruppiert oder nicht gruppiert?

Danke,
gruss,
Jo
 

Lesen sie die antworten

#1 Elmar Boye
02/04/2008 - 17:00 | Warnen spam
Hallo Jo,

Jo Michael schrieb:
ich möchte ein paar Tabellen in eine andere Speichergruppe verschieben.
Die Speichergruppe hab ich bereits erstellt.

Soweit so gut, aber wenn ich jetzt keinen gruppierten Index habe...wie
mach ich das dann?
So wie ich das verstehe wird die Tabelle in die Speichergruppe
verschoben in der auch der gruppierte Index liegt.



So ist es.

Aber wenn ich gar keinen Index habe/will?



Willst Du! und wenn es nur temporàr ist - danach kannst Du den
clustered Index wieder löschen.
Denn es werden dabei die Blattseiten eines clustered Index
und so etwas gibts nunmal nicht bei einem Heap.

Gibt es auch eine einfache Möglichkeit die Tabelle inkl. Index zu
verschieben ohne das ich den Index vorher lösche und neue erstelle (mit SQL2005)?



Die Alternative ist eine neue Tabelle in der Dateigruppe zu
erstellen und die Daten via INSERT zu übertragen anschließend
umbenennen und die alte Tabelle zu löschen.
Dabei wàren auch alle Fremdschlüssel-Einschrànkungen vorher
zu entfernen und neu zu erstellen.

Sowas wie Tabelle wird verschoben mit allen Indizes (egal ob gruppiert
oder nicht gruppiert?



Gibt es nicht. Denn die Einschrànkungen wie Indizes werden dabei
als eigenstàndige Einheiten betrachtet und sie können ja durchaus
in anderen Dateigruppen liegen.

Die MOVE TO Option ist primàr für Partionierungen gedacht
und die Option beim clustered Index ein Abfallprodukt.
Mehr dazu findest Du bei DROP INDEX:
<URL:http://msdn2.microsoft.com/de-de/li...8.aspx>

Gruß Elmar

Ähnliche fragen