MSSQLSERVER_8992MSSQLSERVER_8992

In questo argomento si applica a: SìSQL ServernonDatabase SQL di AzurenonAzure SQL Data Warehouse non Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

DettagliDetails

Nome prodottoProduct Name SQL ServerSQL Server
ID eventoEvent ID 89928992
Origine eventoEvent Source MSSQLSERVERMSSQLSERVER
ComponenteComponent SQLEngineSQLEngine
Nome simbolicoSymbolic Name DBCC3_CHECK_CATALOGDBCC3_CHECK_CATALOG
Testo del messaggioMessage Text Messaggio di controllo del catalogo ERROR, stato STATE: MESSAGE.Check Catalog Msg ERROR Level LEVEL State STATE: MESSAGE.

SpiegazioneExplanation

DBCC CHECKCATALOG o DBCC CHECKDB ha rilevato un'incoerenza nelle tabelle di metadati di sistema per l'oggetto specificato.DBCC CHECKCATALOG or DBCC CHECKDB found an inconsistency in the system metadata tables for the specified object. Ciò significa che vi è un'incoerenza tra l'ID dell'oggetto registrato e l'oggetto specificato nel messaggio di errore.That is, there is an inconsistency between the recorded object ID and the object specified in error message.

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.This error can occur when one or more system tables has been manually updated in a way that creates an inconsistency in the system metadata. 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.For example, a user may have manually deleted an object from the sysobjects table without removing associated rows in other tables such as sysindexes and 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.This error can occur when running DBCC CHECKDB against a database that has been upgraded from SQL Server 2000 to SQL Server 2005 or later. 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.In SQL Server 2000, DBCC CHECKDB did not include DBCC CHECKCATALOG functionality, so the error would not be caught before upgrade unless DBCC CHECKCATALOG was specifically executed against the database in SQL Server 2000.

È possibile che venga visualizzato uno degli errori seguenti insieme all'errore 8992:You may see any of the following errors in conjunction with error 8992:

Messaggio 3851 - Trovata una riga non valida (%ls) nella tabella di sistema sys.%ls%ls.Msg 3851 - An invalid row (%ls) was found in the system table sys.%ls%ls.

Messaggio 3852 - Per la riga (%ls) di sys.%ls%ls non esiste una riga corrispondente (%ls) in sys.%ls%ls.Msg 3852 - Row (%ls) in sys.%ls%ls does not have a matching row (%ls) in sys.%ls%ls.

Messaggio 3853 - Per l'attributo (%ls) della riga (%ls) di sys.%ls%ls non esiste una riga corrispondente (%ls) in sys.%ls%ls.3853 - Attribute (%ls) of row (%ls) in sys.%ls%ls does not have a matching row (%ls) in sys.%ls%ls.

Messaggio 3854 - Per l'attributo (%ls) della riga (%ls) di sys.%ls%ls esiste una riga corrispondente (%ls) in sys.%ls%ls che non è valida.3854 - Attribute (%ls) of row (%ls) in sys.%ls%ls has a matching row (%ls) in sys.%ls%ls that is invalid.

Messaggio 3855 - L'attributo (%ls) esiste senza una riga (%ls) in sys.%ls%ls.3855 - Attribute (%ls) exists without a row (%ls) in sys.%ls%ls.

Messaggio 3856 - L'attributo (%ls) esiste, ma non dovrebbe esistere per la riga (%ls) in sys.%ls%ls.3856 - Attribute (%ls) exists but should not for row (%ls) in sys.%ls%ls.

Messaggio 3857 - L'attributo (%ls) è necessario ma è assente per la riga (%ls) in sys.%ls%ls.3857 - The attribute (%ls) is required but is missing for row (%ls) in sys.%ls%ls.

Messaggio 3858 - Il valore dell'attributo (%ls) della riga (%ls) in sys.%ls%ls non è valido.3858 - The attribute (%ls) of row (%ls) in sys.%ls%ls has an invalid value.

Azione dell'utenteUser Action

Rimuovere e ricreare l'oggetto specificatoDrop and Re-create the Specified Object

Se possibile, rimuovere e ricreare l'oggetto specificato.If possible, drop and recreate the specified object. Se, ad esempio, l'oggetto è una stored procedure di tipo definito dall'utente (UDT), una nuova creazione dell'oggetto potrebbe risolvere il problema.For example, if the object is a stored procedure or user-defined type, recreating the object may resolve the problem.

Eseguire un ripristino da backupRestore from Backup

Se il problema non è correlato all'hardware ed è disponibile un backup valido noto, ripristinare il database dal backup.If the problem is not hardware related and a known clean backup is available, restore the database from the backup. Questa azione è utile solo se il backup non contiene errori dei metadati.This action is only applicable if the backup does not contain the metadata error.

Esportare i dati in un nuovo databaseExport the Data to a New Database

Se nel backup sono contenuti anche metadati incoerenti, è necessario creare un nuovo database in cui esportare il contenuto di quello esistente.If the backup also contains the metadata inconsistency, you need to create a new database and export the contents of the existing database to the new database.

Impossibile correggere questo errore con DBCC CHECKDBDBCC CHECKDB Cannot Repair This Error

Impossibile correggere questo errore.This error cannot be repaired. Se non è possibile ripristinare il database da un backup, contattare il Servizio Supporto Tecnico Clienti MicrosoftMicrosoft.If you cannot restore the database from a backup, contact MicrosoftMicrosoft Customer Service and Support (CSS).

Non aggiornare manualmente le tabelle di sistemaDo Not Manually Update System Tables

Non effettuare aggiornamenti manuali alle tabelle di sistema.Do not make manual updates to system tables. SQL Server non supporta alcuna modifica manuale ai database di sistema.SQL Server does not support any manual changes to system databases. Se si aggiorna una tabella di sistema in un database di SQL Server, vengono registrati due eventi, evento ID 17659 ed evento ID 3859.If you update a system table in a SQL Server database, two events (event ID 17659 and event ID 3859) are logged. Per ulteriori informazioni, vedere l'articolo della Knowledge Base 2688307 relativo agli eventi ID 17659 e ID 3859 registrati durante l'aggiornamento di tabelle di sistema in un database di SQL Server.For more information, see KB article 2688307, "Event ID 17659 and event ID 3859 are logged when you update system tables in a SQL Server database".

Vedere ancheSee Also

Gli eventi con ID 17659 e ID 3859 vengono registrati durante l'aggiornamento delle tabelle di sistema in un database di SQL ServerEvent ID 17659 and event ID 3859 are logged when you update system tables in a SQL Server database