日期:2014-05-17  浏览次数:20841 次

关于数据库外键的一个问题。
对于数据库建立外键有个疑惑,希望有人能够帮忙解答一下:
Table a
(
ID int,
c char(2),
d char(3)
)
Table b
(
ID int,
e char(2),
f char(3)
)
现要建如下外键约束
主键表 外键表
b a
b.e->a.c
b.f->a.d
是否可以实现,应该怎么实现?

------解决方案--------------------
Table a 中字段c,d建立联合主键,Table b的e,f才能做c,d的外键的
------解决方案--------------------
SQL code

--给你写个例子
CREATE TABLE dbo.Table_1
    (
    a nchar(10) NOT NULL,
    b nchar(10) NOT NULL
    CONSTRAINT PK_a_b  PRIMARY KEY CLUSTERED (a,b)
    )  
GO
CREATE TABLE dbo.Table_2
    (
    c nchar(10) NOT NULL,
    d nchar(10) NOT NULL
    )  
GO
ALTER TABLE dbo.Table_2 ADD CONSTRAINT FK_table_1_c_d  FOREIGN KEY(c,d) REFERENCES Table_1(a,b)

------解决方案--------------------
探讨
再看一个例子
Table a有字段ID,为PK
Table b有字段c,d
b.c,b.d都是依赖于table a的ID字段
这样可以建立主外键约束?

------解决方案--------------------
探讨
再看一个例子
Table a有字段ID,为PK
Table b有字段c,d
b.c,b.d都是依赖于table a的ID字段
这样可以建立主外键约束?