如何将 Sybase 上的图像列更改为 NOT NULL

How to alter Image column on Sybase to NOT NULL

在 Sybase ASE 15.7 数据库上,我试图将列类型 ImageNULL 修改为 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)

有什么线索吗?我在网上找不到任何东西。谢谢。

Text/image 数据类型由于其存储方式而在内部与其他数据类型有很大不同。因此,适用于 INT 列的操作不适用于 text/image 列也就不足为奇了。

文档在这一点上不是很清楚,但隐含地说你不能修改 text/image 列的可空性:http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc36272.1600/doc/html/san1393050903443.html