Condividi tramite


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.

Vedi anche

Tabelle di base di sistema