【发布时间】:2015-02-17 04:10:42
【问题描述】:
在 Sybase ASE 15.7 数据库上,我正在尝试将列类型 Image 从 NULL 修改为 NOT NULL(我使用的是 SQSH,所以 ; 是一个有效的终止符):
create table LOB_TEST (XML image NULL);
alter table LOB_TEST modify XML image NOT NULL;
错误信息:
Msg 13907, Level 16, State 1
Server 'MYSERVER', Line 1
ALTER TABLE 'LOB_TEST' failed. You cannot modify column 'XML' to TEXT/IMAGE/UNITEXT type.
这适用于 int 类型的列:
create table NON_LOB_TEST (XML_ID int NULL);
alter table NON_LOB_TEST modify XML_ID int NOT NULL;
(0 rows affected)
任何线索为什么?我在网上找不到任何东西。谢谢。
【问题讨论】:
-
我已经试过了,花了大约 1 个小时……没办法。是否不可能重新创建定义一些
default value到您的image列的表? -
我在 ASE 16 中看到了同样的行为
-
重点是不重新创建表;我发布的是一个复制问题的简化示例,但原始表有 467M 行。是的,这可以通过使用
select into或任何其他允许复制/重新创建数据的方式来完成。非常感谢!
标签: sybase