自己顶顶,难道是嫌分数太少吗?

解决方案 »

  1.   

    被引用的键值必须是一个表的主健,不能是复合健
      

  2.   

    我看你先把两个表结构发上来吧,你这样说我不理解
      

  3.   

    希望主键为Employee.Employee_ID,外键为:Employee_Op_Rec.Employee_ID   
     主表Employee结构:               名              类型              长度      是否允许空[0不允许]
             LoginName       varchar        20          0
    Password       varchar        20          1
    Employee_ID int         4          0
    Employee_Name nvarchar         32 0
    Gender          bit          1 1
    Birthday       smalldatetime 4 1
    Branch_ID          smallint          2 1
    Department_ID int          4 0
    Funcs         nvarchar         20 1
    Tel         varchar         50 1
    Email         varchar          50 1
    Available           bit           1 1
    flag         tinyint           1 1
    flagName         nvarchar          25 1主表-------------Employee-----------------结构--------------------
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Employee]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[Employee]
    GOCREATE TABLE [dbo].[Employee] (
    [LoginName] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [Password] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [Employee_ID] [int] IDENTITY (1, 1) NOT NULL ,
    [Employee_Name] [nvarchar] (32) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [Gender] [bit] NULL ,
    [Birthday] [smalldatetime] NULL ,
    [Branch_ID] [smallint] NULL ,
    [Department_ID] [int] NOT NULL ,
    [Funcs] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [Tel] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [Email] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [Available] [bit] NULL ,
    [flag] [tinyint] NULL ,
    [flagName] [nvarchar] (25) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY]
    GOALTER TABLE [dbo].[Employee] ADD 
    CONSTRAINT [DF_Employee_Gender] DEFAULT (1) FOR [Gender],
    CONSTRAINT [DF_Employee_Branch_ID] DEFAULT (1) FOR [Branch_ID],
    CONSTRAINT [DF_Employee_Department_ID] DEFAULT (0) FOR [Department_ID],
    CONSTRAINT [DF_Employee_Available] DEFAULT (1) FOR [Available],
    CONSTRAINT [PK_Employee] PRIMARY KEY  CLUSTERED 
    (
    [LoginName],
    [Department_ID]
    )  ON [PRIMARY] 
    GOALTER TABLE [dbo].[Employee] ADD 
    CONSTRAINT [FK_Employee_Employee_Branch] FOREIGN KEY 
    (
    [Branch_ID]
    ) REFERENCES [dbo].[Employee_Branch] (
    [Branch_ID]
    ) NOT FOR REPLICATION ,
    CONSTRAINT [FK_Employee_Employee_Department] FOREIGN KEY 
    (
    [Department_ID]
    ) REFERENCES [dbo].[Employee_Department] (
    [Department_ID]
    ) NOT FOR REPLICATION 
    GO
    需要做外键的表--------Employee_Op_Rec-------
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Employee_Op_Rec]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[Employee_Op_Rec]
    GOCREATE TABLE [dbo].[Employee_Op_Rec] (
    [Rec_ID] [int] IDENTITY (1, 1) NOT NULL ,
    [Employee_ID] [int] NOT NULL ,
    [Rec_Content] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [Rec_Date] [datetime] NOT NULL ,
    [Remote_Addr] [varchar] (15) COLLATE Chinese_PRC_CI_AS NULL ,
    [Command_Line] [ntext] COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    GOALTER TABLE [dbo].[Employee_Op_Rec] ADD 
    CONSTRAINT [DF_Employee_Op_Rec_Rec_Date] DEFAULT (getdate()) FOR [Rec_Date],
    CONSTRAINT [PK_Employee_Op_Rec] PRIMARY KEY  CLUSTERED 
    (
    [Rec_ID],
    [Rec_Date]
    )  ON [PRIMARY] 
    GO