Drop tabella senza le sue dipendenze e risolvere la corruzione del blocco
-
02-11-2019 - |
Domanda
Ho trovato avviso sul blocco corrotto nel registro di avviso. Il blocco corrotto apparteneva alla tabella denominata docs. A causa del fatto che non ho alcun backup di questo database, ho deciso di ricreare la tabella DOCS per risolvere la corruzione. Ed ecco un problema.
Generato tutti gli script:
1. DDL for table.
2. DDL for constraints,triggers,indexes on the table.
3. DDL for the constraints that references this table.
4. Saved grants on this table.
Ora voglio lasciare cadere il tavolo, ma ho lasciato le sue dipendenze e quindi ricreare la tabella con i suoi vincoli, innesco, indici.
Come lo posso fare?
------------------------Modificare
Sembra essere molto semplice.
- Salva i dati di questa tabella
Crea tabella new_table come select * da my_table;
- Salva DDL per la tabella e i suoi commenti
- DDL per gli indici in questa tabella
- DDL per vincoli su questa tabella
- DDL per Key-S straniere che riferisce in questa tabella
- Salva sovvenzioni su questo tavolo
- Drop Table Purge
- Ricreare tabella, commenti, vincoli, indici, chiavi estere che riferimenti a questa tabella
- Dare sovvenzioni
Inserire i dati
inserire in my_table come seleziona * da new_table
Questa soluzione funziona per la ricostruzione della tabella (è un modo corretto per ricreare una tabella). Ma la corruzione non è stata risolta, durante l'inserimento nella tabella in Alert.log ha sollevato lo stesso errore sulla corruzione del blocco.
Nei commenti @Mindaugas Riauba ha scritto una soluzione e ha funzionato. Voglio solo sapere perché la mia soluzione sulla tabella di ricostruzione non ha funzionato e il lavoro di soluzione di @mindaugas Riauba?
Grazie ancora @mindaugas Riauba!
Nessuna soluzione corretta