在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)
任何线索为什么?我在网上找不到任何东西。感谢。
答案 0 :(得分:2)
由于存储方式,文本/图像数据类型在内部与其他数据类型非常不同。因此,在INT列上运行的操作在text / image列上不起作用就不足为奇了。
文档在这一点上并不十分清楚,但隐含地说它无法修改文本/图像列的可空性:http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc36272.1600/doc/html/san1393050903443.html