安装补丁报错【不能同时包含聚集KEY和大字段】

栏目:s-hr cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

安装补丁报错【不能同时包含聚集KEY和大字段】

适用版本

s-HR V8.5及以上


【问题描述】

问题描述:安装补丁或者执行SQL升级脚本时报错: 表[T_HR_SCMPAGENTPAYBILLENTRY]中不能同时包含聚集KEY和大字段],DBType=[DM]


原因分析:使用达梦数据库建表时,默认将主键设置为聚集索引(cluster index)。表创建成功后,再往该表增加大字段类型(text/clob)就会报错。所以解决办法就是怎么去除聚集索引。


解决方法

 一. 对于新建的表,如果不想对主键字段设置聚集索引,可以通过执行以下SQL脚本,将主键索引不默认设置为聚集索引:

     /*dialect*/ sp_set_para_value(1,'PK_WITH_CLUSTER',0);

 

 二. 对已经存在的表,步骤一的参数设置显然时无效的。这个时候如果想要添加大字段,只能清除主键的聚集索引。清除步 骤如下(以表T_HR_SCmpAgentPayBillentry为例,具体执行时需要替换报错信息里的表名 ):

   

     (1)给表创建一个新字段test_Field

              /*dialect*/ alter table  T_HR_SCmpAgentPayBillentry add test_Field VARCHAR;


     (2)在新字段test_Field上创建一个聚集索引(该操作会自动将主键上的聚集索引变为非聚集索引)

              /*dialect*/ CREATE cluster INDEX test_index_tf ON T_HR_SCmpAgentPayBillentry (test_Field);


     (3)删掉上一步创建的索引

             /*dialect*/ drop index test_index_tf;


     (4)删除第一步创建的字段test_Field

             ALTER TABLE T_HR_SCmpAgentPayBillentry DROP COLUMN test_Field;


        这样就完成了对聚集索引的清除,接下来就可以继续安装报错的补丁或者执行报错的脚本了。



安装补丁报错【不能同时包含聚集KEY和大字段】

【适用版本】s-HR V8.5及以上【问题描述】问题描述:安装补丁或者执行SQL升级脚本时报错: 表[T_HR_SCMPAGENTPAYBILLENTRY]中不能同时包含...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息