Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 939
  • Last Modified:

How to resolve primary Key changes with Sync Framework 2.1

Hi,

I am synchronizing 2 databases in a one direction enviroment using Sync Framework 2.1. That means i have a "master" database and a "slave" db and i want the changes made in the master db to be downloaded to the slave db. I am only using 2 tables.
It works ok except one case. If i change the primary key in a row in the master db, this change is not reflected in the slave.

Does anybody have a clue or does anybody knows how to make the Sync FW works in those cases?

Thank you.
0
mentor360
Asked:
mentor360
  • 4
  • 4
1 Solution
 
Kevin CrossChief Technology OfficerCommented:
Typically you do not change primary keys. I would expect to see instead the creation of a new row with updated key and deletion of old row. That will sync properly to remove the slave copy of the old row while adding the new one. I guess you can do this in a INSTEAD OF UPDATE trigger that processes as normal unless the following condition is true UPDATE(PK) then you would insert a new row into your database with the new PK and other values of row and delete the original row versus updating.

The issue with UPDATE is it will come over to the slave and try to match on the PK to do update. Since the PK is now changed, you won't make any connections.

Kevin
0
 
mentor360Author Commented:
I have a restriction and i can't create triggers appart from the ones created by the sync framework provisioning. I thought maybe the sync framework could be configured to track the PK changes too.
0
 
Kevin CrossChief Technology OfficerCommented:
How would it match to the row to change the PK? If you have other columns that act as additional unique (natural) keys, then you may be able to JOIN on those update PK ...
0
What Kind of Coding Program is Right for You?

There are many ways to learn to code these days. From coding bootcamps like Flatiron School to online courses to totally free beginner resources. The best way to learn to code depends on many factors, but the most important one is you. See what course is best for you.

 
mentor360Author Commented:
I guess Sync Framework works different because it's able to detect and apply a DELETE. i just tested and manually deleting and inserting the row worked. But I would highly prefer the framework to work with the updates.
0
 
Kevin CrossChief Technology OfficerCommented:
The framework should work for updates, just not against the primary key. Sorry.
0
 
mentor360Author Commented:
I ended up creating a field (IDENTITY) to be the PK and added a UNIQUE index on the old PK
0
 
mentor360Author Commented:
The was no solution I had to change my environment
0
 
Kevin CrossChief Technology OfficerCommented:
@mentor360: so to be clear for future readers - sync'ing primary key changes will not work, so your workaround is to make the column you needed to be able to change NOT a primary key. Anyway, glad you got this sorted.

Best regards and happy coding,

Kevin
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

  • 4
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now