MSSQLSERVER_3859
Si applica a: SQL Server
Dettagli
Attributo | Valore |
---|---|
Nome prodotto | SQL Server |
ID evento | 3859 |
Origine evento | MSSQLSERVER |
Componente | SQLEngine |
Nome simbolico | DBCC_CHECKCAT_DIRECT_UPDATE |
Testo del messaggio | Avviso: il catalogo di sistema è stato aggiornato direttamente nell'ID database %d, più di recente in %S_DATE |
Spiegazione
Questo errore indica modifiche eseguite dall'utente sulle tabelle di sistema. L'aggiornamento manuale delle tabelle di sistema non è supportato. Le tabelle di sistema devono essere aggiornate solo dal motore di database di SQL Server. Quando SQL Server rileva le modifiche avviate dall'utente alle tabelle di sistema, viene generato l'errore 3859 nei due scenari seguenti:
Scenario 1
Un evento simile al seguente viene registrato nel log degli errori di SQL Server o nel log applicazioni in Visualizzatore eventi all'avvio di un database di SQL Server contenente una tabella di sistema aggiornata manualmente:
Nome log: Applicazione
Origine: ID evento MSSQLSERVER: 3859
Categoria attività: Server
Livello: Informazioni
Descrizione: Avviso: il catalogo di sistema è stato aggiornato direttamente nell'ID database %d, più di recente in date_timeScenario 2
Quando si esegue il comando
DBCC_CHECKDB
dopo l'aggiornamento manuale di una tabella di sistema, viene restituito il messaggio di avviso seguente:Risultati DBCC per 'nome_database'.
Messaggio 8992, livello 16, stato 1, riga 1
Controllare il messaggio del catalogo 3859, stato 1: avviso: il catalogo di sistema è stato aggiornato direttamente nell'ID database %d, più di recente in date_time.
CHECKDB ha trovato 0 errori di allocazione e 0 errori di consistenza nel database 'nome_db'.
Esecuzione DBCC completata. Se sono stati visualizzati messaggi di errore DBCC, rivolgersi all'amministratore di sistema.
Azione utente
Per risolvere questo problema, utilizzare uno dei seguenti metodi.
Metodo 1
Se è disponibile un backup pulito del database, ripristinare il database dal backup.
Nota
Questo metodo funziona solo se il backup non presenta incoerenze nei metadati.
Metodo 2
Se non è possibile ripristinare il database da un backup, esportare i dati e gli oggetti in un nuovo database. Trasferire quindi il contenuto del database aggiornato manualmente nel nuovo database. Nota: non è possibile correggere le incoerenze nei cataloghi di sistema usando le opzioni REPAIR nei comandi DBCC CHECKDB. Per questo motivo, dato che il comando non può correggere il danneggiamento dei metadati, il comando non fornisce alcun livello di correzione consigliato.
Nota
È possibile visualizzare i dati nelle tabelle di sistema tramite le viste del catalogo di sistema.
Ulteriori informazioni
Per altre informazioni, vedere Tabelle di base di sistema.