我已经定义了   员工表的[编号]是主键   ,上班时间表的主键是[员工编号], 
但是我不会定义外键了,是在上班时间表中定义关系如下:主键是上班时间的员工编号,与之对应外键是员工表的编号 
--
这么定义,把上班时间表中的编号既做为主键,又做为外键
可是我员工表中员工只有001和002,可是我在上班时间表中天下员工008的上班时间,却是可以添加保存, 
为什么,我添加关系错了,还是没有启用那里??我用的是sql2005
--
应该不可能吧,仔细看看,是不是把员工表中的编号做为了上班时间表的外键了

解决方案 »

  1.   

    table 员工
          [编号] -- PK
         ,[姓名]
         ...table 考勤记录
          [LogID] -- PK
         ,[员工编号] -- FK
         ,[LoginTime]
         ,[LogoutTime]table 上班时间
          [员工编号] -- PK, FK
         ,[上班时长]
         ,[上班日期] 
      

  2.   

    可是我员工表中员工只有001和002,可是我在上班时间表中天下员工008的上班时间,却是可以添加保存,
    --
    员供表中没有编号008,确能添加到上班时间表,说名你没有外键外键约束吧,下边是一个简单的例子。
    create table tb1
    (
    id int primary key,
    name varchar(20),

    )
    create table tb2
    (
    id int primary key,
    time datetime
            constraint FK_tb1_id FOREIGN KEY(id) REFERENCES  tb1(id)
    )
    go
    insert into tb1 values(001,'aa')
    insert into tb1 values(002,'bb')
      

  3.   

    如果插入下面的语句将会报错
    insert into tb2 values(008,getdate())
    错误信息如下:
    消息 547,级别 16,状态 0,第 1 行
    INSERT 语句与 FOREIGN KEY 约束"FK_tb1_id"冲突。该冲突发生于数据库"sjk",表"dbo.tb1", column 'id'。
    语句已终止。