KB2929903 - FIX: Merge agent fails when you apply snapshot in SQL Server 2012 or SQL Server 2014 instance if cross database dependencies are present

Applies To
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Symptoms

Assume that you use Microsoft SQL Server 2012 or SQL Server 2014 Merge Replication. There is a cross database dependency present in any of the published database objects, with same schema name and object name. In this scenario, you receive the following errors:

Note

The schema script '<FileName>.⁠sch' could not be propagated to the subscriber.
The process could not read file "<pathname>⁠\<FileName>.sch'' due to OS error 2.

Cause

The issue occurs because SQL Server Snapshot Agent sometimes returns wrong database for certain dependencies if there is a cross database dependency present in any of the published database objects.

Resolution

After you apply the fix, SQL Server will adjust its behavior to ignore any non-article dependency if the database is set to anything other than the current publisher database.

The issue was first fixed in the following cumulative update of SQL Server.

Cumulative Update 1 for SQL Server 2014 /en-us/help/2931693

Cumulative Update 9 for SQL Server 2012 SP1 /en-us/help/2931078

About cumulative updates for SQL Server

Each new cumulative update for SQL Server contains all the hotfixes and all the security fixes that were included with the previous cumulative update. Check out the latest cumulative updates for SQL Server:

      

Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.