Sql-Server
has_unchecked_assembly_data 在更改兼容性級別後由於持久計算列的重要性?
這個數據庫有一個持久化的計算列,它是通過呼叫 .NET 函式來計算的。在將兼容性從 MSSQL 2005 更改為 2012 時,我收到了錯誤 10334,這看起來更像是一個警告:它告訴我它必須將其中一個表標記為 has_unchecked_assembly_data。
它沒有告訴我該怎麼做。我應該保持原樣嗎?我應該強制以某種方式重新計算列嗎?如何?
alter assembly unchecked data 的文件列出了導致此問題的幾個原因,我認為 #1 是唯一適用於該數據庫的原因。它也沒有解釋如何取消標記這些列。
執行
DBCC CHECKTABLE
或DBCC CHECKDB
將 has_unchecked_assembly_data 設置為零。這在SQL Server 聯機叢書 sys.tables 參考中有記錄。
在升級到 SQL Server 2017 時,我需要執行
DBCC CHECKDB
或DBCC CHECKTABLE
選擇EXTENDED_LOGICAL_CHECKS
設置has_unchecked_assembly_data
為零。參考: