症状
请考虑以下情况:
-
在 Microsoft SQL Server 2012 或 SQL Server 2014 中使用复制。
-
在复制订阅中添加订阅,然后将其删除。
在这种情况下,你可能会收到以下错误515:
无法将值 NULL 插入列 "article_id",表 "<DistributionDatabaseName> .dbo.MSrepl_commands";列不允许空值。 插入失败。
原因
出现此问题的原因是 SQL Server 2012 的回归。 当您添加套餐,然后将其删除时,有关该订阅的复制元数据将立即删除,因为在读取日志中遇到了添加订阅的命令之前有一个延迟。
解决方案
在 SQL Server 的以下累积更新中,此问题首先已修复。
SQL Server 2012 SP2 的累积更新1 /en-us/help/2976982
SQL Server 2014 的累积更新2 /en-us/help/2967546
SQL Server 2012 SP1 的累积更新10 /en-us/help/2954099
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。