阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

老司机
查看: 2588|回复: 7

[求助] K3报错.SQL高手请进.谢谢.

[复制链接]
  • TA的每日心情
    慵懒
    2013-8-21 15:37
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    发表于 2011-7-26 16:51:36 | 显示全部楼层 |阅读模式
    --4将基础的数据提交为BOS元数据
    if not exists(select 1 from ICClassTableInfo where FClassTypeID = 3000004  and FFieldName in ('FBatchSplit','FBatchSplitDays') )
    INSERT INTO ICClassTableInfo(  
            FClassTypeID,FPage,FCaption_CHS,FCaption_CHT,FCaption_EN,FKey,FFieldName,FTableName  
            ,FTableNameAs,FListIndex,FListClassName  
            ,FVisible,FEnable,FNeedSave,FMustInput  
            ,FCtlType  
            ,FProperty  
            ,FLookUpType  
            ,FLookUpClassID,FLookUpList,FSRCFieldName  
            ,FSRCTableName,FSRCTableNameAs  
            ,FDSPFieldName,FFNDFieldName,FValueLocation,FFilter,FFilterGroup  
            ,FValueType  
            ,FDspColType  
            ,FEditlen,FValuePrecision  
            ,FSaveRule,FDefValue,FAction,FUserDefine  
            ,FNote,FKeyWord,FLeft  
            ,FTop,FHeight,FWidth,FCondition  
            ,FTabIndex,FLock,FSum,FPrec,FScale,FLayer,FLoadAction,FUnControl,FFont,FSourceType,FSubKey  
            ,FParentKey,FConditionExt,FFrameBorder,FFrameBorderColor,FLabelWidth,FLabelColor  
            ,FTextColor,FIsF7,FContainer,FStyle  
            )  
            SELECT   
            3000000 + ta.FItemClassID,1 FPage,LEFT(ta.FName,50),LEFT(ta.Fname_cht,50),LEFT(ta.FName_en,50),FSQLColumnName,FSQLColumnName,  
            case when t1.FItemClassID=4 then 't_ICItemPlan' else FSQLTableName end FTableName  
            ,'' FTableNameAs  
            ,CASE  WHEN t1.FItemClassID=4 THEN 600+FpropID ELSE FpropID END,1 FListClassName  
            ,(CASE WHEN FViewMask&16>0 THEN 0 ELSE (case when ta.FIsShownList=1 then 2047 else 3071 end) END) FVisible,FViewMask&8 FEnable,1,FViewMask&2 FMustInput --2-必录,8-不可编辑, 16-不显示  
            ,CASE  WHEN Fsearch=100 THEN 8 --下拉列表  
            WHEN Fsearch>0 THEN 1 --关联项目,字段显示为文本,一般实际保存为数字  
            WHEN FdataType=3 THEN 3      --整数  
            WHEN FdataType=135 OR FdataType=7 THEN 0      --日期  
            WHEN FdataType=5 THEN 2      --实数  
            WHEN FdataType=6 THEN 2      --货币  
            WHEN FdataType=11 THEN 4     --逻辑  
            WHEN FdataType=200 THEN  1   --文本  
            ELSE 1 END FCtlType  
            ,'' FProperty  
            ,(CASE   
            WHEN FSearch=105 THEN 4   --科目  
            WHEN FSearch=120 THEN 5   --币别  
            --WHEN FSearch=7 THEN 6   --计量单位  
            WHEN FSearch=100 THEN 0         --下拉列表  
            WHEN FSearch>0 and FSearch <=19 THEN 1                 --核算项目1  
            WHEN FSearch>=1000 and FSearch<=10000 THEN 1    --核算项目2  
            WHEN FSearch>=20 and FSearch<=999 THEN 2        --辅助资料  
            WHEN FSearch>100000 THEN 3                       --BOS资料  
            ELSE 0                                          --不查找  
            END   
            ) FLookUpType  
            ,(CASE WHEN Fsearch=100 THEN 9999 -- 下拉列表  
                       WHEN Fsearch>0 THEN Fsearch  
                       ELSE 0 END) FLookUpClassID,  
            (CASE WHEN Fsearch=100 THEN 'SQL{ SELECT ' + FSrcField + ',' + FDisplayField + '  FROM '+ FSrcTable +'}'  
              ELSE '' END) FLookUpList  
            ,ISNULL(FSrcField,'') FSrcFieldName  
            , ISNULL(FSrcTable,'')  FSrcTableName  
            ,CASE WHEN ISNULL(FSrcTable,'')='' THEN '' ELSE rtrim(ISNULL(FSrcTable,''))+ltrim(ISNULL(FSQLColumnName,'')) END FSRCTableNameAs  
            ,ISNULL(FDisplayField,'') FDisplayField,ISNULL(FDisplayField,'') FFNDFieldName,1 FValueLocation,'' FFilter,'' FFilterGroup  
            ,(CASE WHEN FSearch =100 THEN 231 --下拉列表  
            WHEN FSearch >0 THEN 56  --关联项目  
            WHEN FdataType=3 THEN 56      --整数  
            WHEN FdataType=135 OR FdataType=7 THEN 61      --日期  
            WHEN FdataType=5 THEN 106     --实数  
            WHEN FdataType=6 THEN 106      --货币  
            WHEN FdataType=11 THEN 104     --逻辑  
            WHEN FdataType=200 THEN 231   --文本  
            ELSE 231 END) FValueType  
            ,(CASE  WHEN Fsearch>0 THEN 500 --关联项目  
            WHEN FdataType=3 THEN 10        --整数  
            WHEN FdataType=5 THEN 9        --实数  
            WHEN FdataType=6 THEN 9       --货币  
            WHEN FdataType=135 OR FdataType=7 THEN 0       --日期  
            WHEN FdataType=11 THEN 501      --逻辑  
            WHEN FdataType=200 THEN  500    --文本  
            ELSE 500 END) FDspColType  
            ,FActualSize FEditlen,FActualSize FValuePrecision  
            ,'' FSaveRule,ISNULL(FDefaultValue,'') FDefValue,'' FAction  
            ,(CASE WHEN FPropID>100 and FPropID<500 THEN 1 ELSE 0 END ) FUserDefine  
            ,'' FNote,'' FKeyWord,100 Fleft  
            ,100 FTop,330 FHeight,5000 FWidth  
            ,(CASE  WHEN Fsearch=100 THEN '5' --下拉列表  
            WHEN Fsearch>0 THEN '0' --关联项目  
            WHEN FdataType=3 THEN '1'        --整数  
            WHEN FdataType=5 THEN '1'        --实数  
            WHEN FdataType=6 THEN '1'        --货币  
            WHEN FdataType=135 OR FdataType=7 THEN '2'   --日期  
            WHEN FdataType=11 THEN '7'      --逻辑  
            WHEN FdataType=200 THEN  '0'    --文本  
            ELSE '0' END)  FCondition  
            ,FPropID,0 Flock,0 FSum,FActualSize FPrec,CASE WHEN FdataType=5 OR FdataType=6 THEN 10 ELSE FSCale END,9 Flayer,'' FLoadAction,145 FUnControl ,'' Font,0 FSourceType,'' FsubKey  
            ,'' FParentKey,0 FConditionExt,2 FFrameBorder ,0 FFrameBorderColor,2500 FLabelWidth,0 FLabelColor  
            ,0 FTextColor,0 FIsF7,'' FContainer, 0 FStyle  
            FROM t_ItemPropDesc ta,t_ItemClass t1  
                WHERE ta.FItemclassID=t1.FItemClassID and ta.FItemclassID=4 and FPropID in (705,706)
    GO
    if not exists(select 1 from t_FieldDescription where FTableID=17 and FFieldName='FBatchSplit')
    insert into t_FieldDescription (FTableID,FFieldName,FFieldType,FDescription,FFieldNote,FType,FSefDefSign,FDescription_Cht,FDescription_En,FFieldNote_Cht,FFieldNote_En,FLookUpType,FLookUpClassID,FSRCFieldName,FSRCTableName,FDSPFieldName,FFNDFieldName,FNeedFilter,FCanInput,FMustInput,FFormat)
    values
    (17,'FBatchSplit','FLOAT','拆分批量','拆分批量',0,0,'拆分批量','Batch split','拆分批量','Batch split',0,0,'','','','',1,1,0,'')
    GO
    if not exists(select 1 from t_FieldDescription where FTableID=17 and FFieldName='FBatchSplitDays')
    insert into t_FieldDescription (FTableID,FFieldName,FFieldType,FDescription,FFieldNote,FType,FSefDefSign,FDescription_Cht,FDescription_En,FFieldNote_Cht,FFieldNote_En,FLookUpType,FLookUpClassID,FSRCFieldName,FSRCTableName,FDSPFieldName,FFNDFieldName,FNeedFilter,FCanInput,FMustInput,FFormat)
    values
    (17,'FBatchSplitDays','INTEGER','批量拆分间隔天数','批量拆分间隔天数',0,0,'批量拆分間隔天數','Number of days between batch split','批量拆分間隔天數','Number of days between batch split',0,0,'','','','',1,1,0,'')
    GO
    楼主热帖
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    慵懒
    2013-8-21 15:37
  • 签到天数: 16 天

    [LV.4]偶尔看看III

     楼主| 发表于 2011-7-26 16:52:36 | 显示全部楼层
    消息 2627,级别 14,状态 1,第 3 行
    违反了 PRIMARY KEY 约束 'PK_ICClassTableInfo'。不能在对象 'dbo.ICClassTableInfo' 中插入重复键。
    语句已终止。

    报错内容,有木有办法可以修改SQL。
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    慵懒
    2021-1-28 19:34
  • 签到天数: 1144 天

    [LV.10]以坛为家III

    发表于 2011-7-27 01:10:34 | 显示全部楼层
    这个不是你自己写的吗?
    你这语句有没有判断重复项呀
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2016-4-15 11:39
  • 签到天数: 87 天

    [LV.6]常住居民II

    发表于 2011-7-27 09:03:28 | 显示全部楼层
    看他出错在哪一行,
    然后再再那一行的错误 就可以了
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    慵懒
    2013-8-21 15:37
  • 签到天数: 16 天

    [LV.4]偶尔看看III

     楼主| 发表于 2011-7-27 10:06:16 | 显示全部楼层
    情归何处 发表于 2011-7-27 01:10
    这个不是你自己写的吗?
    你这语句有没有判断重复项呀

    没有呢,这是K3的升级补丁里的SQL,报错了,无从下手.
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    慵懒
    2013-8-21 15:37
  • 签到天数: 16 天

    [LV.4]偶尔看看III

     楼主| 发表于 2011-7-27 10:06:49 | 显示全部楼层
    情朗 发表于 2011-7-27 09:03
    看他出错在哪一行,
    然后再再那一行的错误 就可以了

    等于没说,哈哈,不过还是谢谢。
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    慵懒
    2021-1-28 19:34
  • 签到天数: 1144 天

    [LV.10]以坛为家III

    发表于 2011-7-27 11:12:54 | 显示全部楼层
    那你检查一下,ICClassTableInfo这个表跟这段代码后面查询出来的内容有什么是重复的,而且,如果是补丁的问题,可以问一下金蝶呀
    你这段东西在网页上看到眼都花,又复制不过查询分析器
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    擦汗
    2018-9-4 17:06
  • 签到天数: 1131 天

    [LV.10]以坛为家III

    发表于 2011-7-30 11:13:06 | 显示全部楼层
    要想知道错误出现在哪一行,很简单。你一行一行的执行语句就可以了。从出错语句上判断,你要插入的东西有重复值,但是这个重复值的字段是表'dbo.ICClassTableInfo' 的主键,所以出错了。
    启用邀请码注册,提高发帖质量,建设交流社区
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表