我想在一个表中增加一个不能为空的字段,为什么不行呢?

zhuwei1987 2008-03-19 10:35:53
'Message' 表
- 不能修改表。
ODBC 错误: [Microsoft][ODBC SQL Server Driver][SQL Server]ALTER TABLE 只允许添加可包含空值或指定了 DEFAULT 定义的列。因为列 'discrict' 不能包含空值且未指定 DEFAULT 定义,所以无法将该列添加到表 'Message' 中。
...全文
265 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
dawugui 2008-03-19
如果有数据,只能建立为空的字段.

然后update tb set col = ''(或0)

然后再修改该字段不能为空.
回复
wzy_love_sly 2008-03-19
--drop table index_tb
create table index_tb(id int constraint ck_id default 0,name varchar(20),xb varchar(2))
--查看表
exec sp_helpindex orders--索引
exec sp_helpconstraint index_tb --约束
exec sp_fkeys 'dbo.Person'--外键
--键不唯一,非聚集索引
create index id_index on index_tb(id)
--删除索引
drop index index_tb.id_index
--键聚集索引
create clustered index id_index on index_tb(id)
--删除索引
drop index index_tb.id_index
--创建check约束
alter table index_tb add constraint ck_index CHECK (name like '[0-9][0-9][0-9][0-9][0-9]')
alter table index_tb add constraint ck2_index check(xb in ('MM','GG'))
--删除check约束
alter table index_tb drop constraint ck2_index
--禁止表约束
alter table index_tb nocheck constraint ck_index
--恢复表约束
alter table index_tb check constraint ck_index
--禁止和恢复所有check-all关键字
select 'alter table '+name+' nocheck or check constraint all' from sysobjects where type='U'
--添加新默认值和约束
ALTER TABLE index_tb ADD CONSTRAINT de_name DEFAULT ('11111') FOR name
--删除表约束
alter table index_tb drop constraint de_name
-- 字段 UNIQUE NOT NULL = PRIMARY KEY 差不多
--创建unique
alter table index_tb add constraint uniqueindex unique(id)
--删除unique
alter table index_tb drop constraint uniqueindex

insert into index_tb(name,xb) select '12345','mm'

select * from index_tb

delete index_tb

回复
bulesky_xshp 2008-03-19
原因:你原来已经有数据了,现创建一个可为空的字段,然后更新成统计一值(即有值)最后把字段设为不为空。
回复
iamltd 2008-03-19
alter tabel message add discrict varchar(10) not null default('')

新字段不允许为空的话就需要指定default
回复
hlq8210 2008-03-19
alter table Message add discrict nvarchar(20) not null default('')
回复
-狙击手- 2008-03-19
ALTER TABLE 只允许添加可包含空值或指定了 DEFAULT 定义的列。因为列 'discrict' 不能包含空值且未指定 DEFAULT 定义,所以无法将该列添加到表 'Message' 中。
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-03-19 10:35
社区公告
暂无公告