2012-12-20 57 views
0

我有两个表TABLE_ACCOUNTTABLE_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) 

这可能吗?

回答

3

号         

+0

查找到父/子类型,并作出超表,您可以FK一次。 – ErikE

+0

我已将TABLE_ACCOUNT NAME添加到TABLE(默认值为1的CODETRADE),(默认值为2的CODECAT),(默认值为3的CODEITYPE)然后创建对外键:) –