Condividi tramite


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_time

  • Scenario 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, usare uno dei metodi seguenti.

  • 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.