电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

凭证生成报错:不能在具有唯一索引“IDX_FLEX工TEKUNIQUE”的对象“dbo.T_BD_FLEXITEMDETAILV”中插入重复键的行

来源:金蝶云社区作者:金蝶2024-09-237

凭证生成报错:不能在具有唯一索引“IDX_FLEX工TEKUNIQUE”的对象“dbo.T_BD_FLEXITEMDETAILV”中插入重复键的行

问题描述:

上传图片

解决方案:

重建计算列可以解决该问题,重建方法有两个:

方法一:通过前台加一个核算维度,提交审核(会重建计算列),再反审核删除刚刚加的维度即可。

方法二:通过脚本重建,重建脚本如下:

DECLARE @DEFINCOL NVARCHAR(4000)=''
	DECLARE @COLNAME NVARCHAR(100)=''
	DECLARE FLEX_CUR CURSOR FOR
		SELECT NAME FROM SYSCOLUMNS WHERE ID=OBJECT_ID('T_BD_FLEXITEMDETAILV') AND NAME NOT IN('FID','FOPCODE','FCALCOL') ORDER BY COLID;
	--收集列名形成新列的定义字串
	OPEN FLEX_CUR;
	FETCH NEXT FROM FLEX_CUR INTO @COLNAME;
	WHILE @@FETCH_STATUS = 0
		BEGIN
			IF LEN(@DEFINCOL)=0
				SET @DEFINCOL = 'RTRIM(CONVERT(VARCHAR(80),'+@COLNAME+'))'
			ELSE
				SET @DEFINCOL = @DEFINCOL+'+''_''+RTRIM(CONVERT(VARCHAR(80),'+@COLNAME+'))'
			FETCH NEXT FROM FLEX_CUR INTO @COLNAME;
		END;
	CLOSE FLEX_CUR;
	DEALLOCATE FLEX_CUR;
	 
	--检查FCALCOL列
	IF EXISTS(SELECT * FROM SYSCOLUMNS WHERE ID=OBJECT_ID('T_BD_FLEXITEMDETAILV') AND NAME ='FCALCOL')
	BEGIN
		--检查索引
			IF EXISTS(SELECT * FROM SYSINDEXES WHERE ID=OBJECT_ID('T_BD_FLEXITEMDETAILV') AND NAME='IDX_FLEXIT

凭证生成报错:不能在具有唯一索引“IDX_FLEX工TEKUNIQUE”的对象“dbo.T_BD_FLEXITEMDETAILV”中插入重复键的行

问题描述:解决方案:重建计算列可以解决该问题,重建方法有两个:方法一:通过前台加一个核算维度,提交审核(会重建计算列),再反审核删...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信