From: saandii777 on 13 Jul 2010 15:05 Thank you ver much. Your suggestion has really solved the purpose. We are actually planning to maintain a table with columns (tbl_name,currentvalue,min,max) With current value we know the position to insert and always with min and max we know publisher/subscriber is inserting within the permisible range else we update the range and then allow insert. Thanks for the suggestion. saandii777 "Dan" wrote: > I already suggested an approach where you don't have identity, you need to > get your application to use primary key values that will not result in > conflicts. I'm assuming that your application is simply reading the highest > value from the cid column and adding 1? If so, change it - for instance, use > a separate table to hold the last value used and increment that, and start > the value off on the publisher at 1 and at the subscriber with a high number > like 100000. > > Dan > > > "saandii777" <saandii777(a)discussions.microsoft.com> wrote in message > news:E4CBB797-6146-4CF8-BC56-986E619BC60E(a)microsoft.com... > > Thank you for the reply. > > > > The information is very much helpful. > > I can surely resolve this when primary key column is set to identity. > > > > But in my case some of the tables cannot have primary key column set to > > identity and I am really looking for a approach where this can still be > > solved. > > > > Note: > > Publisher location: SQL SERVER 2008 > > Subscriber location: SQL SERVER COMPACT EDITION > > > > thanks > > saandii777 > > > > "Dan" wrote: > > > >> In that case you need to look into stopping conflicts from occurring, or > >> find a way to handle conflicts. For instance, MS have a large article for > >> SQL Server 2000 here: http://support.microsoft.com/kb/315514 > >> > >> Rather than pick one thing that you can't change, why not include details > >> of > >> your system (SQL Server versions for instance) and what you can change? > >> That > >> would make it easier for someone to suggest possible ideas. > >> > >> Can you change the application? For instance, have the publisher use only > >> odd numbers, and the subscriber only use even numbers? Or use different > >> seeds for your id numbers, say starting at 1 for the publisher and 10000 > >> for > >> the subscriber (which of course breaks when you hit 10000 ids inserted by > >> the publisher, but you haven't provided any information about the > >> expected > >> numbers of rows inserted so I've just picked that arbitrarily, you would > >> need to select a value that would allow your system to scale as > >> required). > >> > >> If you search Google for articles about SQL Server merge replication > >> conflicts you'll find lots of information on what you could do. > >> > >> Dan > >> > >> > >> "saandii777" <saandii777(a)discussions.microsoft.com> wrote in message > >> news:065F9DB1-85BA-43C5-BBF5-8023ECD02EC0(a)microsoft.com... > >> > Hello all, > >> > > >> > One of the solution I saw on internet is to add a column to table > >> > customer > >> > having name of subscriber/publisher. > >> > > >> > Thus defining cid and this column as primary key. > >> > > >> > I know it will solve the purpose but I guess I am not in this position > >> > to > >> > have table structure changed like this. > >> > > >> > Someone plz help > >> > > >> > saandii777 > >> > > >> > > >> > "saandii777" wrote: > >> > > >> >> Hello All, > >> >> > >> >> We are facing a issue with merge replication. > >> >> Suppose I have a table customer (cid,cname) which we have published. > >> >> Note cid is primary key and it is not identity. > >> >> > >> >> Initially there is one row in customer table (1,'Mohan') > >> >> > >> >> After replication process > >> >> At publisher: one row is inserted with cid=2 > >> >> At subscriber: one row is inserted with cid=2(allowed as working on > >> >> its > >> >> own > >> >> copy) > >> >> > >> >> When we syncronize it throws an error as there are 2 rows with cid=2. > >> >> Note : we cannot set cid as identity. > >> >> > >> >> Can anyone tell me how this issue is to be resolved. > >> >> > >> >> Thanks > >> >> saandii777 > >> >> > >> > >> > >> > >> . > >> > > > > . >
From: masrath on 22 Jul 2010 04:02
Hello Saandhii first the primary requsite for replication is the table must contain primary key column then only replication task will be possible. create a table with primary key column contain then do replication saandii777 wrote: >Hello All, > >We are facing a issue with merge replication. >Suppose I have a table customer (cid,cname) which we have published. >Note cid is primary key and it is not identity. > >Initially there is one row in customer table (1,'Mohan') > >After replication process >At publisher: one row is inserted with cid=2 >At subscriber: one row is inserted with cid=2(allowed as working on its own >copy) > >When we syncronize it throws an error as there are 2 rows with cid=2. >Note : we cannot set cid as identity. > >Can anyone tell me how this issue is to be resolved. > >Thanks >saandii777 |