MSSQLSERVER_3859

適用於:SQL Server

詳細資料

屬性
產品名稱 SQL Server
事件識別碼 3859
事件來源 MSSQLSERVER
元件 SQLEngine
符號名稱 DBCC_CHECKCAT_DIRECT_UPDATE
訊息文字 警告:系統目錄已直接在資料庫識別碼 %d 中更新,最近位於 %S_DATE

說明

此錯誤表示使用者起始的系統資料表變更。 不支援手動更新系統資料表。 系統資料表只能由 SQL Server 資料庫引擎更新。 當 SQL Server 偵測到使用者起始的系統資料表變更時,會在下列兩個案例中引發錯誤 3859:

  • 案例 1

    當您啟動包含手動更新系統資料表的 SQL Server 資料庫時,會在 SQL Server 錯誤記錄檔或事件檢視器的應用程式記錄檔中記錄類似下列事件:

    記錄名稱:應用程式
    來源:MSSQLSERVER 事件識別碼:3859
    工作類別:伺服器
    等級:資訊
    描述:警告:系統目錄已直接在資料庫識別碼 %d 中更新,最近于 date_time

  • 案例 2

    當您在手動更新系統資料表之後執行 DBCC_CHECKDB 命令時,會傳回下列警告訊息:

    ' database_name ' 的 DBCC 結果。
    訊息 8992,層級 16,狀態 1,第 1 行
    檢查目錄 Msg 3859,狀態 1:警告:系統目錄已直接在資料庫識別碼 %d 中更新,最近于 date_time
    CHECKDB 在資料庫 ' db_name ' 中找到 0 個配置錯誤和 0 個一致性錯誤。
    DBCC 的執行已經完成。 如果 DBCC 印出錯誤訊息,請連絡您的系統管理員。

使用者動作

若要解決此問題,請使用下列其中一種方法。

  • 方法 1

    如果您有資料庫的完整備份,請從備份還原資料庫。

    注意

    只有當備份在中繼資料中沒有不一致時,這個方法才有效。

  • 方法 2

    如果您無法從備份還原資料庫,請將資料和物件匯出至新的資料庫。 然後,將手動更新資料庫的內容傳送至新的資料庫。 注意 您無法使用 DBCC CHECKDB 命令中的 REPAIR 選項來修復系統目錄中的不一致。 因此,因為命令無法修復中繼資料損毀,所以命令不會提供任何建議的修復層級。

    注意

    您可以透過系統目錄檢視來檢視系統資料表中的資料。

其他相關資訊

如需詳細資訊,請參閱: 系統基表