如果表 PCSYSTEM 必须两个字段为主键的话,那么表 EMPLOYEE 的设计就有问题,应该再加一个字段:InsideIPAddress

解决方案 »

  1.   

    楼上的说的好象不对,我下面这个表执行时是正确的,与前面的EMPLOYEE表应该是一样的啊,而前面的回出错呢??CREATE TABLE [DBO].[CPU](
    CpuCode NVARCHAR(3) NOT NULL,
    SystemNumber NVARCHAR(4) NOT NULL,
    Company NVARCHAR(50)
    )
    GO
    ALTER TABLE CPU ADD
    CONSTRAINT PK_CPU PRIMARY KEY(CpuCode)ALTER TABLE CPU ADD

    CONSTRAINT FK_CPU_PcSystem FOREIGN KEY(SystemNumber) REFERENCES PcSystem(SystemNumber)
      

  2.   

    把你两次发的DDL语句合起来一起运行,看是否如你所说,执行正确???
    CREATE  TABLE  [Dbo].[Employee](  
                           EmployeeID  NVARCHAR(11)  NOT  NULL,                          
                           SystemNumber  NVARCHAR(4),  
                           Re  NVARCHAR(100)                          
    )  
    GO  
    ALTER  TABLE  Employee  ADD  
                           CONSTRAINT  PK_Employee  PRIMARY  KEY(EmployeeID)  
    go
    CREATE  TABLE  [DBO].[PcSystem](  
    SystemNumber  NVARCHAR(4)  NOT  NULL, 
    InsideIPAddress NVARCHAR(39) NOT NULL,
                           Company  NVARCHAR(50)  
    )  
    GO   
     
    ALTER TABLE PcSystem ADD
    CONSTRAINT PK_PcSystem PRIMARY KEY(SystemNumber,InsideIPAddress)
    GO
    ALTER  TABLE  Employee  ADD                                                  
                           CONSTRAINT  FK_Employee_PcSystem  FOREIGN  KEY(SystemNumber)  REFERENCES  PcSystem(SystemNumber) 
    GO
    CREATE TABLE [DBO].[CPU](
    CpuCode NVARCHAR(3) NOT NULL,
    SystemNumber NVARCHAR(4) NOT NULL,
    Company NVARCHAR(50)
    )
    GO
    ALTER TABLE CPU ADD
    CONSTRAINT PK_CPU PRIMARY KEY(CpuCode)ALTER TABLE CPU ADD

    CONSTRAINT FK_CPU_PcSystem FOREIGN KEY(SystemNumber) REFERENCES PcSystem(SystemNumber)
    GO