凭证生成报错:不能在具有唯一索引“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格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



