SQL Server PK和FK总是相等的值

时间:2012-03-11 04:06:15

标签: c# sql-server increment

我有疑问,如何将新数据插入数据库中,主键和外键的值总是相等?

离。我在Name表中输入了我的名字,而Name表中有PK和FK。每次我插入新数据时,FK都是空的。我希望FK的值与PK的值相同,即使它们具有不同的字段名称。

enter image description here

以上是我的数据库关系。每次我插入新数据时,EventsID pk(Eventstbl)都不会复制到EvnetsID FK(Organizationtbl)

2 个答案:

答案 0 :(得分:0)

参照完整性不像您所描述的那样有效。它更适合触发器的功能。 PK和外键约束的目的是防止将其他表中不存在的数据作为PK插入。因此,如果要在将新记录插入前者时将数据从Eventstbl复制到Organizationtbl,则需要为Eventstbl的插入事件编写触发器。您的PK-FK约束将如下所示,当您向Organizationtbl插入新记录时,它将检查Eventstbl表以查找相应的EventsID。如果它不存在,则不允许您向Organizationtbl插入新记录。我希望它有所帮助。

答案 1 :(得分:0)

好吧,你可以在EventsTbl中使用一个触发器,一个插入/更新后触发器。因此,此触发器可以插入/更新您需要的其他表。您可以使用INSERTED表来捕获PK的新值。我希望它有所帮助。