Replication Question

  • We're currently using Transactional Replication to send data from one business partner to another, in a scenario like this:

    Server A -> transactional replication -> Server B

    However, now I need to add additional data (through an import process, not through replication) to the database on Server B.  (but I won't be updating any of the data that is from Server A -- all changes to that data must occur on Server A)

    Is it considered acceptable to update tables on Server B even though they are subscribing to data from Server A?  If the subscription is reinitialized, is replication smart enough to not wipe out any of the data on Server B not added/updated via the replication process?

    Thanks for any assistance.

  • Rkatri,

    Does the data that is imported to Server B go into the same tables as published from Server A, or are these different tables?

    If different, there's no problem.  But if you're inserting new rows into the same table as replicated, or updating rows that were originally replicated, then your method will not work.

    Instead, you might create auxillary tables to hold the additional data.

    Hope this helps,

    Scott Thornburg

     

  • by default replication will delete all the data in the row, whether it came from replication or the import process. You could create a filter if there was something about your data coming from the replication process or the import process which the filter could identify, and then set up your articles (click on the browse button to the right of your article in the articles property dialog, and select the snapshot tab), to delete the data that matches the row filter statement.

    --

    Hilary Cotter

    Looking for a SQL Server replication book?

    http://www.nwsu.com/0974973602.html

    Looking for a FAQ on Indexing Services/SQL FTS

    http://www.indexserverfaq.com

  • In reply to Scott's question, I will be inserting rows in the same tables as the replicated data, but I would not be updating any rows that were originally replicated.   However, he indicates this would be an issue even if just inserting data.

    I do need clarification on Hilary's reply.  She says "by default replication will delete all data in the row."  However, I assume it will not delete all the rows in the table, but rather just the rows that were replicated previously -- is that correct?  If that is the case it seems like it would be okay to insert rows into the tables via an import process on Server B, just not to update any rows that are a result of replication.  Or, does it go by the filter?  If I have some sort of SiteID and setup my replication with a filter to only include those rows with specified SiteID's, would that resolve the problem?

    Thanks again for any help!

    Ryan Katri

  • What Hilary was implying is that you MUST setup a filter to solve the problem

    Cheers

    [Edit]: Oh and yes, SiteID seems like a good candidate for it


    * Noel

Viewing 5 posts - 1 through 4 (of 4 total)

You must be logged in to reply to this topic. Login to reply