Question : Sql Server 2000 Timestamp Issue With Merge Replication

I have been working on this issue this past week and have not gotten any closer.

We use an accounting application that has an MS Access front end and SQL Server back end.  The application allows us to use multiple companies by setting up multiple databases in SQL Server to which it can then connect.  We have three sister companies in this environment.  The three companies are extremely similar, so we wanted to replicate certain tables in order to keep consistency across the companies.  The replication needs to be relatively immediate.  These tables fall into two groups: Chart of Accounts (and 7 supporting tables) and the Products List (and 37 supporting tables).

I have successfully implemeted Merge Replication using the Chart of Accounts group and changes are currently being replicated continuallly across all three companies.  However, when I create the Merge Replication using the Product List group of articles the following happens:
  1. The initial Snapshot is made.
  2. The snapshot is successfully added to the subscription company and the merge agent goes idle.
  3. Once a data change is made to a product in any company, a conflict immediately arises and the merge agent stops merging.
Using the conflict viewer I get the following message in the "reason for conflict":

"The row was updated at '.e>' but could not be updated at '.e>'. RAISERROR could not locate entry for error 800318 in sysmessages."

When I try to resolve the conflict with the "Loser" data (the information that I want updated) I get the following message:

"The Conflict Viewer was unable to perform the specified action.  The error &H80040E2F (with a native error from the datasource of 272) was raised by Microsoft OLE DB Provider for SQL Server, with a message of 'Cannot update a timestamp column.'.

My understanding of SQL Server Merge Replication is that it is supposed to implement the timestamp field in the snapshot schema, but ignore the actual value when replicating.  But that does not seem to be the case here.  The first group (Chart of Accounts) did not have any timestamp fields, but there are several in the Products List group.

Anyone have any idea on what I might be doing wrong?

Answer : Sql Server 2000 Timestamp Issue With Merge Replication

OK.  I have recreated the publication and subscriptions several times throughout all of last week, but I did it again just to be sure...

However, this time I did make a change that I had not made before.

Under the article's properties (for a Table) on the "Merging Changes" tab, under "Multicolumn Updates"... I unchecked the default property "When merging, apply changes to multiple columns in the same row in one update statement."

I always kept it checked because I thought it was the most efficient way for SQL Server to do the updates.  However, unchecking this option has allowed the replication across the companies to proceed without the above mentioned error regarding the timestamp field.

I still do not know why SQL Server can ignore the timestamp field when individually updating columns versus a single update statement, but this seems to have solved the problem.

Thanks for the help and the suggestions.
Random Solutions  
 
programming4us programming4us