症状
请考虑以下方案:
-
在 SQL Server 2017 实例上启用 " 通用标准合规性 " (CCC)选项。
-
尝试使用不存在的 SQL 登录名登录到 SQL Server 实例。
-
使用管理员帐户登录到 SQL Server 实例。
-
对 master 数据库运行DBCC CHECKDB命令。
在这种情况下,你可能会收到类似于以下内容的错误消息:
消息2570、级别16、状态2、行LineNumber页(#: #)、对象 ID # 中的槽 #、索引 ID #、分区 id #、分配单元 ID # (type "行内数据")。列 "name" 值超出数据类型 "nvarchar" 的范围。将列更新为合法值。
状态
Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。
解决方案
在 SQL Server 的以下累积更新中修复了此问题:
关于 SQL Server 的累积更新:
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
解决方法
若要解决此问题,请启用 跟踪标志(TF) 2566 ,当你对 master 数据库运行 DBCC CHECKDB 命令时,将禁用 DATA_PURITY 检查。 但是,这不会阻止将无效行插入 master 数据库。 它只是在 DBCC CHECKDB 期间禁用该检查。
参考
了解 Microsoft 用于描述软件更新的术语。