0
我有两个表TABLE_ACCOUNT
和TABLE_ACTYPE
。在sql server 2008中给外键而不是列外键
的TABLE_ACCOUNT
有列
(CODE, NAME, TRADE, CATGORY, ACTYPE)
和TABLE_ACTYPE
有列
(CODE, NAME, ITYPE)
在TABLE_ACTYPE
的数据是:
CODE NAME ITYPE
-----------------------
1 TRADE1 1
1 CAT1 2
1 ACT1 3
此表的主键是CODE, TYPE
数据在TABLE_ACCOUNT
是:
CODE, NAME, TRADE, CATEGORY, ACTYPE
-----------------------------------
1 Name1 1 1 1
我要创建3个外键来table_account
ALTER TABLE TABLE_ACCOUNT WITH CHECK
ADD CONSTRAINT FK_TABLE_ACCOUNT_TABLE_ACTYPE_TRADE
FOREIGN KEY ([TRADE,1]) REFERENCES [TABLE_ACTYPE] (CODE, ITYPE)
ALTER TABLE TABLE_ACCOUNT WITH CHECK
ADD CONSTRAINT FK_TABLE_ACCOUNT_TABLE_ACTYPE_CAT
FOREIGN KEY ([TRADE,2]) REFERENCES [TABLE_ACTYPE] (CODE, ITYPE)
ALTER TABLE TABLE_ACCOUNT WITH CHECK
ADD CONSTRAINT FK_TABLE_ACCOUNT_TABLE_ACTYPE_ACTYPE
FOREIGN KEY ([TRADE,3]) REFERENCES [TABLE_ACTYPE] (CODE, ITYPE)
这可能吗?
查找到父/子类型,并作出超表,您可以FK一次。 – ErikE
我已将TABLE_ACCOUNT NAME添加到TABLE(默认值为1的CODETRADE),(默认值为2的CODECAT),(默认值为3的CODEITYPE)然后创建对外键:) –