在我当前的项目中,我必须将多个客户端数据库同步到一个服务器数据库。我曾尝试过使用微软的同步框架,但对我而言并没有用。因此我必须手动进行同步。为此,我需要在所有表格中更改主键约束从int到guid。将主键从int移动到Guid
问题是这个主键在其他表中也被称为外键。 我下面简称,
Moving from ints to GUIDs as primary keys
我不擅长SQL。我理解逻辑,但实际执行对我来说非常困难。
ALTER TABLE MyTable
ADD GuidCol NVARCHAR(50) NOT NULL,
CONSTRAINT AK_GuidCol UNIQUE(GuidCol)
在上面的代码我试图添加一列GuidCol作为独特的列后谷歌搜索了很多。但是 我不知道如何在新创建的列中填充值? 如何在分配值后将此列作为PK? 如何确保此过程不会破坏现有的外键约束?
什么是手动同步与外键的类型有关?您可能试图解决错误的问题。 –
在手动同步中没有使用外键。但在这里我试图添加新的唯一GUID列。我想这个列是PK,所以我需要更新所有的外键表。例如。如果PK是1,Guid是G,那么我需要改变FK为1到G的其他表中的条目。对不起,写错了。我希望你能得到我想说的话。 – sachin