You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求编写SQL存储过程:同步主产品与V结尾变体的user_def_1字段

SQL存储过程实现物料字段匹配校验与修正

以下是满足需求的SQL存储过程,既能检测主物料与变体物料的user_def_1不匹配记录,也能自动修正变体的user_def_1值使其与主物料保持一致:

CREATE PROCEDURE Sync_Item_UserDef1
AS
BEGIN
    SET NOCOUNT ON;

    -- 筛选所有不匹配的主物料与变体物料记录
    SELECT 
        main.Item_no AS 主物料编号,
        main.user_def_1 AS 主物料user_def_1值,
        variant.Item_no AS 变体物料编号,
        variant.user_def_1 AS 变体当前user_def_1值
    INTO #MismatchedItems
    FROM Item main
    JOIN Item variant 
        ON variant.Item_no = main.Item_no + 'V'
    WHERE 
        RIGHT(main.Item_no, 1) <> 'V'
        AND main.user_def_1 <> variant.user_def_1;

    -- 输出检测结果并执行修正
    IF EXISTS(SELECT 1 FROM #MismatchedItems)
    BEGIN
        PRINT '发现以下不匹配的物料记录:';
        SELECT * FROM #MismatchedItems;

        -- 更新变体物料的user_def_1值,与主物料对齐
        UPDATE variant
        SET variant.user_def_1 = main.user_def_1
        FROM Item main
        JOIN Item variant 
            ON variant.Item_no = main.Item_no + 'V'
        JOIN #MismatchedItems mis
            ON main.Item_no = mis.主物料编号
            AND variant.Item_no = mis.变体物料编号;

        PRINT '已完成不匹配记录修正,共处理 ' + CAST(@@ROWCOUNT AS VARCHAR) + ' 条记录';
    END
    ELSE
    BEGIN
        PRINT '所有主物料与变体物料的user_def_1值均匹配,无需操作';
    END

    DROP TABLE IF EXISTS #MismatchedItems;
END

存储过程说明

  • 先通过临时表#MismatchedItems定位所有主物料(编号不以V结尾)和对应变体(主物料编号+V)的user_def_1不一致记录
  • 输出不匹配明细用于核查,随后自动将变体的user_def_1同步为主物料的值
  • 无匹配异常时输出提示信息

使用方式

  1. 手动执行:在SQL环境中运行EXEC Sync_Item_UserDef1;即可触发校验与修正
  2. 夜间调度:通过SQL Server代理创建定时作业,设置每日夜间执行计划,调用该存储过程即可实现自动运行

注意事项

  • 执行该存储过程需要拥有Item表的查询和更新权限
  • 首次执行建议先注释掉UPDATE语句,仅查看检测结果,确认无误后再启用修正逻辑
  • 建议定期备份Item表,避免意外数据变更

内容的提问来源于stack exchange,提问作者user2912475

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 10:05:24