最后一个批处理应该分成两个批处理(中间加一个 ‘GO’),例如:
ALTER  TABLE  PcSystem  ADD  
                       CONSTRAINT  PK_PcSystem  PRIMARY  KEY(SystemNumber)  
GO
ALTER  TABLE  Employee  ADD                                                  
                       CONSTRAINT  FK_Employee_PcSystem  FOREIGN  KEY(SystemNumber)  REFERENCES  PcSystem(SystemNumber)

解决方案 »

  1.   

    楼上说的对,
    ALTER  TABLE  PcSystem  ADD  
                           CONSTRAINT  PK_PcSystem  PRIMARY  KEY(SystemNumber)  
    GO
    ALTER  TABLE  Employee  ADD                                                  
                           CONSTRAINT  FK_Employee_PcSystem  FOREIGN  KEY(SystemNumber)  REFERENCES  PcSystem(SystemNumber)
    GO
      

  2.   


    CREATE  TABLE  [Dbo].[Employee](  
                           EmployeeID  NVARCHAR(11)  NOT  NULL,                          
                           SystemNumber  NVARCHAR(4),  
                           Re  NVARCHAR(100)                          
    )  
    也要约束为not null
      

  3.   

    不明白楼上的约束为NOT NULL,是指哪个字段,外键可以为空么?
      

  4.   

    ALTER TABLE ASMaster ADD
    CONSTRAINT FK_ASMaster_Request FOREIGN KEY(RequestID) REFERENCES Employee(EmployeeID),
    CONSTRAINT FK_ASMaster_DepartmentTeam FOREIGN KEY(DepartmentTeamCode) REFERENCES DepartmentTeam(DepartmentTeamCode)
    执行后,会出现以下错误,
    服务器: 消息 1769,级别 16,状态 1,行 1
    外键 'FK_ASMaster_Request' 引用了位于引用表 'ASMaster' 中的无效列 'RequestID'。
    服务器: 消息 1750,级别 16,状态 1,行 1
    未能创建约束。请参阅前面的错误信息。
    对了,两个表中含有约束的外键字段是否可以不同
      

  5.   

    可能是刚才在上面表达的不清楚,重新写一下如下所示:
     
    在PCSYSTEM表中设置两个主键SystemNumber and InsideIPAddress,若是只设置SystemNumber为主键下面的语句正常,但是我想设置两个主键的话,该怎么样设置呢?
    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)  
    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) 
    服务器:  消息  1776,级别  16,状态  1,行  1  
    在被引用表  'PcSystem'  中没有与外键  'FK_Employee_PcSystem'  的引用列的列表匹配的主键或候选键。  
    服务器:  消息  1750,级别  16,状态  1,行  1  
    未能创建约束。请参阅前面的错误信息。
    ALTER TABLE ASMaster ADD
    CONSTRAINT FK_ASMaster_Request FOREIGN KEY(RequestID) REFERENCES Employee(EmployeeID),
    CONSTRAINT FK_ASMaster_DepartmentTeam FOREIGN KEY(DepartmentTeamCode) REFERENCES DepartmentTeam(DepartmentTeamCode)
    执行后,会出现以下错误,
    服务器: 消息 1769,级别 16,状态 1,行 1
    外键 'FK_ASMaster_Request' 引用了位于引用表 'ASMaster' 中的无效列 'RequestID'。
    服务器: 消息 1750,级别 16,状态 1,行 1
    未能创建约束。请参阅前面的错误信息。
    对了,两个表中含有约束的外键字段是否可以不同