如何在sql server 2005中创建父子关系?

时间:2012-10-29 10:27:42

标签: sql-server-2005 visual-studio-2008

如果我的sql server 2005中有两个表,我需要在这些表之间创建父子关系,以便我可以使用vb.net 2008中的绑定导航器检索该数据?

2 个答案:

答案 0 :(得分:1)

将主键和外键添加到要作为父级和子级关联的表中。

ALTER TABLE [dbo].[CHILD]  WITH CHECK ADD  CONSTRAINT [FK_PARENT__CHILD] 
FOREIGN KEY([ID]) REFERENCES [dbo].[PARENT] ([ID]) ON UPDATE CASCADE
ON DELETE CASCADE

答案 1 :(得分:1)

您需要在两个表之间建立foreign key关系。

基本上这是一个表中的一列,其中包含另一个表中行的id。

有两种方法可以设置它。

  1. 父母持有孩子的身份证明。这仅在两个对象之间存在1:1关系时才有用。
  2. 孩子持有父母的身份。这更有用,因为父和多个孩子之间可以存在1:多个关系。
  3. 维基百科页面中的这个例子说明了代码:

    CREATE TABLE Supplier (
     SupplierNumber  INTEGER NOT NULL,
     Name            VARCHAR(20) NOT NULL,
     Address         VARCHAR(50) NOT NULL,
     TYPE            VARCHAR(10),
     CONSTRAINT supplier_pk PRIMARY KEY(SupplierNumber),
     CONSTRAINT number_value CHECK (SupplierNumber > 0) )
    
    CREATE TABLE Invoices (
     InvoiceNumber   INTEGER NOT NULL,
     SupplierNumber  INTEGER NOT NULL,
     Text            VARCHAR(4096),
     CONSTRAINT invoice_pk PRIMARY KEY(InvoiceNumber),
     CONSTRAINT inumber_value CHECK (InvoiceNumber > 0),
     CONSTRAINT supplier_fk FOREIGN KEY(SupplierNumber)
        REFERENCES Supplier(SupplierNumber)
        ON UPDATE CASCADE ON DELETE RESTRICT )