SQl问题非空约束

我想将User_password 定义为非空约束,但是执行alter table dbo.T_user alter column user_Password varchar(20) not null后发生错误,服务器: 消息 515,级别 16,状态 2,行 1
无法将 NULL 值插入列 'User_password',表 'KTVIEW.dbo.T_user';该列不允许空值。UPDATE 失败。
语句已终止。
求高手解决。
我想要的是设置为非空约束,为了防止插入数据时发生错误。

楼主可以这样试试,我用过很多次的绝对可以
首先update dbo.T_user set user_Password='' where user_Password is null
然后在设置非空
alter table dbo.T_user alter column user_Password varchar(20) not null

这样就可以让字段 user_Password 不允许null
这样就可以把user_Password 字段改成 varchar(20) not null 了

如果楼主想要不能空的约束,那个就要做触发器了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-07-14
原因:
数据库里有的数据为null,故你修改数据表结构列数据不为null的时候报错

先把数据为null的修改为别的值,例如''

然后在执行你的修改表结构的语句
第2个回答  2010-07-14
不能设置为主键吗?
相似回答