KB4340837 - 修复:在具有SQL Server数据库快照请求订阅数据库的服务器上应用修补程序时出现错误 3906

应用对象
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

症状

假设你在运行 Microsoft SQL Server 的服务器上具有一个数据库快照请求订阅数据库。 在服务器上应用修补程序时,脚本级升级失败,并收到类似于以下内容的错误消息:

注意

日期时间spid_number 正在执行复制作业安全元数据升级...
date timespid_number 错误:3906,严重性:16,状态:1。
date timespid_number 无法更新数据库“database_name”,因为数据库是只读的。
date timespid_number 错误:912,严重性:21,状态:2。
date timespid_number 数据库“master”的脚本级别升级失败,因为升级步骤“msdb110_upgrade.sql”遇到错误 3906,状态 1,严重性为 16。 这是一种严重的错误情况,可能会干扰常规操作,数据库将脱机。 如果在升级“master”数据库期间发生错误,则会阻止整个 SQL Server 实例启动。 检查前面的错误日志条目,采取适当的纠正措施,并重新启动数据库,以便脚本升级步骤运行到完成。

解决方法

以下针对SQL Server更新中修复了此问题:

关于SQL Server生成

SQL Server的每个新版本都包含上一版本中的所有修补程序和安全修补程序。 我们建议您安装 SQL Server 的最新版本:

状态

Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。

参考资料

了解Microsoft用于描述软件更新 的术语