sql中的外键约束

时间:2009-06-29 22:19:30

标签: ado.net

我在sql server中有2个表,主键设置为identity。他们是相关的,工作正常。 然后我在vb 2008中创建了一个表单并尝试将一些值插入到我的数据库中,相应的主键可以工作,但父表中的主键不会显示在子表中。我确实在vb中使用ado.net创建了一个关系我的表的详细信息在数据表中定义。例如 cust表(custid,name,..) 书桌(bookid,bookname,..,custid)

在vb中我的insert语句类似于插入cust(名称)值(@name) 插入book(bookname)值(@bookname)。我没有在数据库(表)中自动生成的id列。 我的问题是,当数据存储回数据库中的tavles时,如何将custid插入book表中。

请提供一个例子,因为我不是你们的一半。

亲切的问候

2 个答案:

答案 0 :(得分:0)

在插入图书之前,您必须知道要与图书关联的客户。如果你事先不知道,你就不能。因此,在您的表单中的某个位置应该有一种方法来选择客户。然后,当您创建一本书时,您将获取该客户的ID并将其与其他书籍信息一起插入。

答案 1 :(得分:0)

您实际上并没有说您在两个表之间创建了外键约束!

你需要:

  • 确保在BOOK表上创建显式外键以指向CUST表中的客户。

  • 首先插入客户。

  • 然后找出客户自动生成的ID是什么。该值在@@ IDENTITY中。存放在某处,例如@CUSTID。

  • 插入图书,指定@CUSTID作为客户的ID。