此数据库有一个持久计算列,它是通过调用 .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
为零。参考资料:
程序集 - 实施
对索引执行逻辑一致性检查