试试这样:ALTER TABLE chargetable ADD CONSTRAINT [FK_chargetable_unittable] FOREIGN KEY
(
[cardnum]
)REFERENCES unittable
(
[cardnum]
)
GOALTER TABLE chargetable ADD CONSTRAINT [FK_chargetable_persontable] FOREIGN KEY
(
[cardnum]
)REFERENCES persontable
(
[cardnum]
)
GO

解决方案 »

  1.   

    不行,chargetable中加不入数据,
    断言该如何加入?
    当chargetable的cardnum的值在unittable的cardnum字段中存在,而不在persontable的cardnum字段中时于与FK_chargetable_persontable关系冲突!
    可有人知道。
      

  2.   

    关用外键约束好象不行。再建一个表,就cardnum一个字段,每当插入unittable或persontable表时,外该表中插入同一键值,该字段为主键。同时chargetable和新表的cardnum建立外键关系PS:办法不是很好,也可以用给chargetable表建触发器来解决
      

  3.   

    建议使用存储过程,测试是否在主表中存在。我给你写一个,请参考。create proc proc_insert_chargetable
    as
    if(exists(select a.cardnum from unittable a join chargetable b where a.cardnum=b.cardnum))
    begin
    insert into chargetable values(值1,值2,....)
    end
      

  4.   

    为什么不使用外键呢,纯粹是个人原因。本人开发数据库时经常会删除一些数据。一旦创建了外键连接,则删除数据时经常会提示一些不让删除的信息,我讨厌他们,是非常的厌恶。HOHO