我在查询分析器里建立了一个表:create table login
(name nvarchar(20),
pwd nvarchar(40))
然后修改数据表结构:
alter table login add id int constraint id_key primary key not null 
出现错误服务器: 消息 4901,级别 16,状态 1,行 1
ALTER TABLE 只允许添加可包含空值或指定了 DEFAULT 定义的列。因为列 'id' 不能包含空值且未指定 DEFAULT 定义,所以无法将该列添加到表 'login' 中。

解决方案 »

  1.   

    create table login
    (
    id  int  not null ,
    name nvarchar(20) ,
    pwd nvarchar(40),
     CONSTRAINT ID_PK PRIMARY KEY (ID)
    )
     主键不能为null
      

  2.   

    create table login
    (id int not null,
    name nvarchar(20),
    pwd nvarchar(40)
    )
    ALTER TABLE [dbo].[login] ADD 
    CONSTRAINT [id_key] PRIMARY KEY  CLUSTERED 
    (
    [ID]
    )  ON [PRIMARY] 
    数据库要求 alter table 时候 新加入的列必须要有 default 或者 指定 null ,但是指定主键的字段又不允许为null 所以就成了那样
      

  3.   

    或者 这样
    create table login
    (id int not null   PRIMARY KEY CLUSTERED  ,
    name nvarchar(20),
    pwd nvarchar(40)
    )