热门关键词好会计 好业财 T+ 易代账 好生意 用友U8 用友BIP

    详细信息

    您现在的位置:网站首页 >> 百科问答 >> 详细信息

    畅捷通T+产品问题解决:19.0升级报错:【库存(ST)】模块的SQL 脚本

    发布时间:2025-7-4  

    人工客服

    特价活动:>>>> 用友U8、T6、T+、T3软件产品4折优惠,畅捷通T+cloud、好会计、易代账、好业财、好生意云产品8折优惠 

    【问题现象】:

    19.0升级182号以上补丁,报错:【库存(ST)】模块的SQL 脚本: 19.000.000.0181 DATA_DPRD_ST_Mix_SERVICE_177090_NL-33001 出错:子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。


    【解决方案】:

    先备份好账套,进入数据库,对应用账套库执行下列语句:(全部复制过去,一起执行)

    执行完后,接着升级即可;


    脚本:


    ----补丁脚本----

    GO

    --批量修改字段顺序

    ALTER PROCEDURE [dbo].[EAP_SP_SearchItem_BatchSetLocation]

    @SearchName nvarchar(200),

    @PreFieldName nvarchar(200),

    @FieldNames nvarchar(1000) --字段名称 以,分割

    AS

    BEGIN

    declare @SearchId int

    declare @PreOrderNum int

    declare @UpdateNum int

    declare @TEMPTable TABLE ( a varchar(100),b int )

    SELECT @SearchId=[Id] FROM [EAP_SearchInfo_Ext] WHERE [name]=@SearchName


    INSERT @TEMPTable(a,b) SELECT a,b FROM dbo.Str_Split(@FieldNames,',') order by b

    SELECT @UpdateNum = count(*) FROM @TEMPTable

    IF(@PreFieldName='')

    BEGIN

    SET @PreOrderNum = (select MIN([OrderNum]) FROM [EAP_SearchItem_Ext] where [SearchId]=@SearchId )

    --@SearchName对应的所有查询项[OrderNum]字段值都加+ @UpdateNum

    UPDATE [EAP_SearchItem_Ext]

    SET [OrderNum]=[OrderNum]+ @UpdateNum

    WHERE [SearchId]=@SearchId


    --@SearchName中的查询项(@FieldName)的[OrderNum]设置为最小值

    UPDATE si SET si.OrderNum = @PreOrderNum+ (t.b-1)

    FROM [EAP_SearchItem_Ext] si,@TEMPTable t

    WHERE si.[FieldName] = t.a

    and si.[SearchId]=@SearchId

    UPDATE EAP_SearchPlanItem_Ext

    SET OrderNum = OrderNum + @UpdateNum

    FROM EAP_SearchPlanItem_Ext

    inner join EAP_SearchPlanInfo_Ext on EAP_SearchPlanItem_Ext.planid = EAP_SearchPlanInfo_Ext.id

    WHERE OrderNum>@PreOrderNum and EAP_SearchPlanInfo_Ext.SearchId = @SearchId and EAP_SearchPlanInfo_Ext.SearchStyle<>3

    RETURN

    END


    ELSE

    BEGIN

    SET @PreOrderNum = (select top 1 [OrderNum] from [EAP_SearchItem_Ext] where [SearchId]=@SearchId and [FieldName]=@PreFieldName)

    UPDATE [EAP_SearchItem_Ext]

    set [OrderNum]=[OrderNum]+@UpdateNum

    where [OrderNum]>@PreOrderNum and [SearchId]=@SearchId

    UPDATE si SET si.OrderNum = @PreOrderNum+ (t.b)

    FROM [EAP_SearchItem_Ext] si,@TEMPTable t

    WHERE si.[FieldName] = t.a

    and si.[SearchId]=@SearchId

    UPDATE EAP_SearchPlanItem_Ext

    SET OrderNum = OrderNum + @UpdateNum

    FROM EAP_SearchPlanItem_Ext

    inner join EAP_SearchPlanInfo_Ext on EAP_SearchPlanItem_Ext.planid = EAP_SearchPlanInfo_Ext.id

    WHERE OrderNum>@PreOrderNum and EAP_SearchPlanInfo_Ext.SearchId = @SearchId and EAP_SearchPlanInfo_Ext.SearchStyle<>3

    END


    UPDATE pitem set pitem.OrderNum = si.OrderNum

    FROM EAP_SearchPlanItem_Ext pitem

    join EAP_SearchPlanInfo_Ext sp on pitem.planid = sp.id

    join EAP_SearchItem_Ext si on pitem.SearchItemId = si.id

    WHERE sp.SearchId = @SearchId and si.FieldName in(select a from @TEMPTable) and sp.SearchStyle<>3

    END ; ;

    GO


    遇到这类型产品功能更新的应用如果无法独立操作处理,可以拨打【用友软件官方授权免费热线:400-665-0028】进行产品咨询或者服务问题咨询。


     

     

    上一篇:t1升级怎么处理?

    客服电话:400-665-0028

    关键字:用友财务软件,畅捷通软件,财务软件,进销存软件,U9官网,用友U8,用友T1,用友T+,用友T3,用友T6,畅捷通好会计,好生意,智+好业财,用友培训服务售后公司,畅捷通运营培训服务公司

    版权所有:用友畅捷通软件 Copyright © 2025 All rights reserved.

    鲁ICP备2020041017号-6