MSSQLSERVER_8992
Si applica a: SQL Server
Dettagli
Articolo | Valore |
---|---|
Nome prodotto | SQL Server |
ID evento | 8992 |
Origine evento | MSSQLSERVER |
Componente | SQLEngine |
Nome simbolico | DBCC3_CHECK_CATALOG |
Testo del messaggio | Messaggio di controllo del catalogo ERROR, stato STATE: MESSAGE. |
Nota
8992 Il messaggio di errore fa riferimento a un altro messaggio specifico (compreso tra 3851 e 3858) sull'incoerenza effettiva.
Spiegazione
DBCC CHECKCATALOG o DBCC CHECKDB ha rilevato un'incoerenza nelle tabelle di metadati di sistema per l'oggetto specificato. Ciò significa che vi è un'incoerenza tra l'ID dell'oggetto registrato e l'oggetto specificato nel messaggio di errore.
Questo errore può verificarsi quando una o più tabelle di sistema sono state aggiornate manualmente in modo da creare un'incoerenza nei metadati di sistema. Un utente, ad esempio, può avere manualmente eliminato un oggetto dalla tabella sysobjects senza rimuovere le righe associate in altre tabelle, quali sysindexes e syscolumns.
Questo errore può verificarsi quando si esegue DBCC CHECKDB su un database aggiornato da SQL Server 2000 a SQL Server 2005 o versione successiva. Poiché in SQL Server 2000 DBCC CHECKDB non include la funzionalità DBCC CHECKCATALOG, l'errore non viene rilevato prima dell'aggiornamento a meno di non eseguire DBCC CHECKCATALOG in modo specifico sul database.
È possibile che venga visualizzato uno degli errori seguenti insieme all'errore 8992:
ID messaggio | Testo messaggio |
---|---|
3851 | Trovata una riga non valida (%ls) nella tabella di sistema sys.%ls%ls. |
3852 | Per la riga (%ls) di sys.%ls%ls non esiste una riga corrispondente (%ls) in sys.%ls%ls. |
3853 | Per l'attributo (%ls) della riga (%ls) di sys.%ls%ls non esiste una riga corrispondente (%ls) in sys.%ls%ls. |
3854 | Per l'attributo (%ls) della riga (%ls) di sys.%ls%ls esiste una riga corrispondente (%ls) in sys.%ls%ls che non è valida. |
3855 | L'attributo (%ls) esiste senza una riga (%ls) in sys.%ls%ls. |
3856 | L'attributo (%ls) esiste, ma non dovrebbe esistere per la riga (%ls) in sys.%ls%ls. |
3857 | L'attributo (%ls) è necessario ma è assente per la riga (%ls) in sys.%ls%ls. |
3858 | Il valore dell'attributo (%ls) della riga (%ls) in sys.%ls%ls non è valido. |
Azione utente
Rimuovere e ricreare l'oggetto specificato
Se possibile, rimuovere e ricreare l'oggetto specificato. Se, ad esempio, l'oggetto è una stored procedure di tipo definito dall'utente (UDT), una nuova creazione dell'oggetto potrebbe risolvere il problema.
Eseguire un ripristino da backup
Se il problema non è correlato all'hardware ed è disponibile un backup valido noto, ripristinare il database dal backup. Questa azione è utile solo se il backup non contiene errori dei metadati.
Esportare i dati in un nuovo database
Se nel backup sono contenuti anche metadati incoerenti, è necessario creare un nuovo database in cui esportare il contenuto di quello esistente.
Impossibile correggere questo errore con DBCC CHECKDB
Impossibile correggere questo errore. Se non è possibile ripristinare il database da un backup, contattare il Servizio Supporto Tecnico Clienti Microsoft.
Non aggiornare manualmente le tabelle di sistema
Non effettuare aggiornamenti manuali alle tabelle di sistema. SQL Server non supporta alcuna modifica manuale ai database di sistema. Se si aggiorna una tabella di sistema in un database di SQL Server, vengono registrati gli eventi seguenti:
Quando una tabella di sistema viene aggiornata manualmente
Msg 17659: Avviso: l'ID <> tabella di sistema è stato aggiornato direttamente nell'ID <> del database e la coerenza della cache potrebbe non essere stata mantenuta. È necessario riavviare SQL Server.
Avvio di un database con una tabella di sistema aggiornata manualmente
Messaggio 3859: Avviso: il catalogo di sistema è stato aggiornato direttamente nell'ID <>del database, più di recente in date_time
Quando si esegue il comando DBCC_CHECKDB dopo l'aggiornamento manuale di una tabella di sistema
Msg 3859: Avviso: il catalogo di sistema è stato aggiornato direttamente nell'ID <>del database, più di recente in date_time.