If the first statement in the applied stored procedure is an operation other than update, or the replicate database does not subscribe to the before image and after image of the updated row, Replication Server fails to deliver the applied stored procedure to the replicate database. Instead, Replication Server performs other actions that you can interpret as warnings.
The actions Replication Server takes is based on:
The first operation (other than update) contained in the applied stored procedure at the primary database
Whether the row modification stays in the subscription for the replicate database, and whether it matches the subscription’s before image or after image
This section identifies the warning conditions that prevent Replication Server from delivering an applied stored procedure at a replicate database.
Condition: The first row operation is an insert operation.
Action: Replication Server distributes the insert operation instead of the applied stored procedure.
Condition: The first row operation is a delete operation.
Action: Replication Server distributes the delete operation instead of the applied stored procedure.
Condition: Replicate Replication Servers have subscriptions that match the before image, but not the after image, of the modified row.
Action: Replication Server distributes a delete operation (rs_delete system function) to replicate databases with subscriptions to the before image but not the after image of the row modification.
Example: Assume there is a table T1 that has a column named C1 with a value of 1. A replicate database has a subscription to a replication definition for table T1 where C1 = 1.
If the associated stored procedure is executed with the parameters= 1 (before image) and = 2 (after image), the replicate database does not subscribe to the after image value of 2. Therefore, Replication Server distributes the delete operation to the replicate database.
Condition: Replicate Replication Servers have subscriptions that match the after image, but not the before image of the modified row.
Action: Replication Server distributes an insert operation (rs_insert system function) to replicate databases with subscriptions to the after image but not the before image of the row modification.
Example: Assume there is a table T1 that has a column named C1 with a value of 1. A replicate database has a subscription to a replication definition for table T1 where C1 = 2.
If the associated stored procedure is executed with the parameters = 1 (before image) and = 2 (after image), the replicate database does not subscribe to the before image value of 1. Therefore, Replication Server distributes the insert operation to the replicate database.
Condition: Replicate Replication Servers have subscriptions that match neither the before image nor the after image of the row modification.
Action: Replication Server does not distribute any operation or stored procedure to the replicate databases.
Example: Assume there is a table T1 that has a column named C1 with a value of 1. A replicate database has a subscription to a replication definition for table T1 where C1 > 2.
If the associated stored procedure is executed with the parameters equal to 1 (before image) and equal to 2 (after image), the replicate Replication Server does not subscribe to either the before image value of 1 or the after image value of 2. Therefore, Replication Server performs no distribution to the replicate database.