2011-05-26 104 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