Unable to Delete db objects after Replication & other issues

  • First off I have setup replication in SQL 2008 but I am posting it here because I could not find that section under SQL 2008 in this forum.

    A breief discription about my Replication set-up:

    I have setup Transcational Replication with push subscription and have both the publisher and the distributor on the same server.The subscriber is on a different server also running sql 2008.I have scheduled the job to run every 30mts

    The replication seems to be working fine when data is being added , updated or deleted .

    the issues I am facing are:

    1)when I try to delete a table or procedure it says the objects is used for replication and does not allow me to delete the object.Is this something that is usual for replication,if so how can I work around it?

    2)I have setup the replication from a QA server to a development server.Don't ask me why,my boss wanted me to do so:).We have daily builds during which sync scripts are created from another development database on a different server and push the changes in the database schema to the QA server.We use Redgate SQL Compare to do this ,unfortunately REDGATE looks up the tables on the replication databse and over writes the tables marked NOT for Replication.

    I would greatly appreciate any help to these issues.

  • for #1 it's normal. you have to remove the table from any publications that it's in and then you can delete it

    for #2 our SOX auditors would laugh at us if we ever did this

  • thx for the reply mate.

    I know #2 is laughable.I had to control laughing when my boss wanted to do this,but what can I say .I am new in the company and am trying to get a decent architecture in place.

    What I find starnage is I have selected all the tables for replication but I see something like this in the schmema

    [column name] [int] NOT NULL IDENTITY(1, 1) NOT FOR REPLICATION,

    should this even be here since I am replication this table and this is also a primary key?

  • The NOT FOR REPLICATION is put when you create the table in the publisher. This is a valid configuration.

    As per BOL NOT FOR REPLICATION is used in

    Foreign key constraints

    The foreign key constraint is not enforced when a replication agent performs an insert, update, or delete operation.

    Check constraints

    The check constraint is not enforced when a replication agent performs an insert, update, or delete operation.

    Identity columns

    The identity column value is not incremented when a replication agent performs an insert operation.

    Triggers

    The trigger is not executed when a replication agent performs an insert, update, or delete operation.

    -Roy

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

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