sybase如何增加一个不为空的列

wangzk0206 2006-07-19 04:29:43
我在PB中用这个语句:
alter table test add t_col char(3) not null;
结果确报SYBASE 不允许在ALTER TABLE 的时候NOT NULL;
这是为什么那??
有什么其他的方法把为空的列改为NOT NULL 吗
...全文
509 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
K1933 2006-07-23
  • 打赏
  • 举报
回复
MS SQL2K也是这样子,但如果给默认值后就不会了.
小潜s 2006-07-20
  • 打赏
  • 举报
回复
SYBASE 12以前新增列不允许非空的,不知道12以后是怎么样的,要新增一非空列,只能先把原表数据导出到一张临时表,然后重建表,然后将数据从临时表导回
xyqiqi 2006-07-20
  • 打赏
  • 举报
回复
增加此列的时候,给一个默认值。
wangzk0206 2006-07-19
  • 打赏
  • 举报
回复
照样报错 :
ALTER TABLE ONLY ALLOWS COLUMNS TO BY ADDED WHICH CAN CONTAIN NULLS,COLUMN YW_TYPE CANNOT BE ADDED TO 'TABLE ADD_ACCEPT' BECAUSE IT DOES NOT ALLOW NULLS
orcd 2006-07-19
  • 打赏
  • 举报
回复
你把那一列更新一下,比如都赋上值 然后再改为不为空
看到一种方法,试试这个
后面加上
DEFAULT '' WITH VALUES



alter table test add t_col char(3) not null
DEFAULT '' WITH VALUES
;

wangzk0206 2006-07-19
  • 打赏
  • 举报
回复
我的那个字段是刚建立的
没有数据
并且我的表也都DELETE了
  • 打赏
  • 举报
回复
楼上讲得很明暸了
orcd 2006-07-19
  • 打赏
  • 举报
回复
你现在新增一列,,如果表中已经有数据的话,那么这一列的值都是空的,但你又不让他为空
所以出现错误,,
你可以先让他为空
然后更新这一列的值,不让他是空值
然后再更新这列的属性,改为not null

1,075

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧