Wie kann ich den Typ für eine Tabelle ändern, für die ein Index vorhanden ist? Ich habe versucht, eine Änderungsspalte in einer leeren Tabelle zu erstellen, um den Typ von Datum und Uhrzeit auf varchar (15) zu ändern. Dabei wurde die Fehlermeldung ausgegeben, dass er Abhängigkeiten von der Spalte hatte (was sich als Indizes herausstellte).
Ich konnte dies lokal umgehen, indem ich mit der rechten Maustaste auf den Index klickte und ein Skript für einen Drop erstellte, aber ich muss dies auf anderen Servern bereitstellen, auf denen ich keinen Zugriff auf den Indexnamen habe.
Gibt es eine Möglichkeit, ein Skript zu erstellen, mit dem jeder Index gelöscht werden kann? Lassen Sie mich diesen Datentyp in der Spalte ändern und dann den Index lesen? Vielen Dank!
quelle
Um eine Spalte zu ändern, müssen Sie zuerst den Index oder andere Einschränkungen, die diese Spalte enthalten, löschen und anschließend den Index / die Einschränkung erneut erstellen. Diese Aufgabe muss jedoch von einem Datenbankadministrator ausgeführt werden, da sich das Löschen eines Index oder einer Einschränkung einerseits auf die abgefragten Daten auswirkt, während der Index gelöscht wird, und andererseits die gesamte Tabelle für die Zeit blockiert, in der der Index wiederhergestellt wird. erstellt. Sie müssen sicherstellen, dass die Benutzer über diese kleine oder große (abhängig von der Tabellengröße) Wartung informiert sind. Viel Glück!
Die Indexerstellung kann jedoch mit der Option Online erfolgen, die weniger blockierend ist.
quelle
Wenn Sie den Index zuerst löschen, können Sie ihn nicht erneut lesen, es sei denn, der Index wird neu erstellt. Was Sie tun können, um die Durchsetzung der Einschränkung zu deaktivieren.
Nachdem dieses Skript ausgeführt wurde, wird die Einschränkung nicht erzwungen, und Sie können Daten eingeben, ohne sich um die Einschränkungsprüfungen kümmern zu müssen. Sie können die Tabelle erneut ändern, um die Einschränkungen wieder zu aktivieren.
Alle vorherigen Verstöße werden nicht überprüft oder korrigiert, aber alle Einträge, nachdem die Einschränkung erzwungen wurde, werden überprüft.
quelle
Es gibt 2 Fehler in Nikos Antwort (2 object_id Bedingungen fehlen). Und keine Notwendigkeit
group by
:quelle