2011-05-26 97 views

回答

5

1至1 .. *

創建從父表到子(查找表)的主鍵的外鍵。

CREATE TABLE A 
(
    id int NOT NULL IDENTITY(1,1) PRIMARY KEY, 
    Somecolumn int, 
    SomeOtherColumn Varchar(50), 
    B_id int CONSTRAINT FOREIGN KEY REFERENCES B(id), 
    -- ...other columns 
) 

CREATE TABLE B 
(
    id int NOT NULL IDENTITY(1,1) PRIMARY KEY, 
    Name Varchar(50) 
) 

1至0..1

創建一個表

CREATE TABLE [Master] 
(
    id int NOT NULL IDENTITY(1,1) PRIMARY KEY, 
    Somecolumn int, 
    SomeOtherColumn Varchar(50), 
    -- ...other columns 
) 

CREATE TABLE [Child] 
(
    id int NOT NULL PRIMARY KEY, 
    OtherColumn Varchar(50), 
) 

ALTER TABLE Child 
    ADD CONSTRAINT FK_Master FOREIGN KEY (id) REFERENCES Master(id) 
+0

非常感謝!父表怎麼樣?!他們保持不變?! – Miguel 2011-05-26 10:52:52

+0

忘了吧:)我的壞:) – Miguel 2011-05-26 11:00:52

+0

@Mitch:在Master-Child的例子中,'Master'和'Child'中的'IDENTITY'都不會導致任何問題? – 2011-05-26 11:02:39

1

一對多

    主鍵也被定義爲外鍵父表
  1. 定義兩個表(示例A和B),用它們自己的主鍵
  2. 定義在表A中的列以基於表B的主鍵具有外鍵關係

這意味着表A可以具有與單個記錄於表B.

一個或多個記錄

如果您已經到位的表,使用ALTER TABLE語句創建外鍵約束:

ALTER TABLE a添加約束外KEY fk_b(B_ID)引用b(ID)

* fk_b: Name of the foreign key constraint, must be unique to the database 
* b_id: Name of column in Table A you are creating the foreign key relationship on 
* b: Name of table, in this case b 
* id: Name of column in Table B