如何创建此SQL约束

我所处的情况是我有一组现有的表,其中Integers递增为Ids。我现在已经为每个表添加了一个GUID作为新的PK。 我有一张主表
dbo.ParentTable(GUID - PK, ParentTableId INT, Name VARHCHAR) 
和一张儿童桌
dbo.ChildTable(GUID - PK, ParentTableId INT, other fields.....) 
并且希望基于ParentTableId在两者之间创建关系(主要是因为.Net的LINQ to SQL将建立关系)。 我意识到我不能在两者之间建立FK关系,因为他们现在拥有GUIDS for PK。 我应该更新子表中的GUID以便它们链接回其父表,还是可以基于预先存在的ParentId列创建关系? 两者之间的关系是一对多(父对子),我正在使用SQL Server 2008。     
已邀请:
我想你可能会错误地认为你只能创建一个引用
PRIMARY KEY
FOREIGN KEY
。实际上,你可以创建一个引用
UNIQUE
约束的
FOREIGN KEY
,例如
ALTER TABLE ParentTable ADD 
   UNIQUE (ParentTableId);

ALTER TABLE ChildTable ADD 
   FOREIGN KEY (ParentTableId)
   REFERENCES ParentTable (ParentTableId);
    
我不认为您想要更新子表中的GUID以链接到父表,因为这可能会破坏子表中的PK。我会做的是将子表中的“ParentTableId”列更改为GUID而不是INT。然后使用ParentTable.GUID< - > ChildTable.ParentTableID之间的关系更新子表。     
  想要在两者之间建立一种关系(主要是因为.Net的LINQ to SQL将建立关系) 接受的答案很棒。但是,LinqToSql并不关心数据库中的内容。即使尚未定义FKey,您也可以添加关联。     

要回复问题请先登录注册