Sql 使用外键作为RowGuidCol

Sql 使用外键作为RowGuidCol,sql,sql-server,foreign-keys,Sql,Sql Server,Foreign Keys,我有以下情况: *我有一个包含表A和表B的现有数据库。 *表A有一个主键“ID”,其类型为uniqueidentifier,不可为null,并标记为RowGuidCol。 *表B有一个外键“TableA_ID”,它表示表a中的主键“ID” 问题: 有什么原因不应该将表B中的外键“ID”设置为RowGuidCol吗? 根据定义,“ROWGUIDCOL属性表示列中的uniqueidentifier值唯一地标识表中的行。”[因此,值在多个表中不是唯一的并不重要,对吗 感谢您对这个主题的任何想法!是的,

我有以下情况: *我有一个包含表A和表B的现有数据库。 *表A有一个主键“ID”,其类型为uniqueidentifier,不可为null,并标记为RowGuidCol。 *表B有一个外键“TableA_ID”,它表示表a中的主键“ID”

问题: 有什么原因不应该将表B中的外键“ID”设置为RowGuidCol吗? 根据定义,“ROWGUIDCOL属性表示列中的uniqueidentifier值唯一地标识表中的行。”[因此,值在多个表中不是唯一的并不重要,对吗


感谢您对这个主题的任何想法!

是的,这是一个很好的理由。RowGUID表示每行中的值对于该表是唯一的。您在这里有一个外键。如果表之间存在1:1关系,则您可以设置此属性,因为每行将与表a中的一行关联,并且只有一行。这也意味着您可以将此列用作主键和外键。但是,如果表之间的关系为1:m,则无法执行此操作,因为此表中的任何行都可以具有相同的TableA_ID值(当它们与TableA中的同一行关联时)。由于这主要用于复制,请参阅

非常感谢!我确实有1:1的关系,因此将继续设置属性。