我已经用SQL语句定义了表结构,但是忘记指定主键约束了。是不是要求定义为主键约束的字段都必须事先已定义了not null约束?如果没有在建表的时候指定not null 约束,怎么追加这个约束呢?另外,alter   table   users   add   CONSTRAINT   PRI_USER   primary   key(USERID),PRI_USER是什么意思?

解决方案 »

  1.   

    --------添加主键约束(bookid作为主键)
    alter table bookmessage
    add constraint pk_bookid primary key(bookid)
      
    --------添加唯一约束
    alter table bookmessage
    add constraint uq_bookid UNIQUE(bookid)
      
    ---------添加默认约束
    alter table bookmessage
    add constraint df_address DEFAUIT('地址不详') for Address
      
    --------添加检出约束,要求年龄只能在15---40之间
    alter table readermessage
    add constraint CK_age CHECK(age BETWEEN 15 AND 40)
      
    -------添加外键约束
    alter table bookmessage
    add constraint fk_bookid
        foreign key(bookid)<外键> references readermessage<表>(readerid)<表中的主键>   
      
    -------删除约束
    alter table 表名
    drop constraint 约束名
      

  2.   

    1 不需要一定加not null
    2 是约束名称
      

  3.   

    主键一定要not null
    约束则不一定.PRI_USER是约束名
      

  4.   

    create table T(ID int)
    go
    alter table T  alter column ID int not null --非空
    go
    alter table T add 
      constraint PK_T primary key clustered (ID) --生成聚集索引