SQLserver2008同步更新的问题。。

image.png

上图是商品资料表ptype表。


如何做到,增删改ptype表后,


也同步更新下图的T_Jxc_PtypeUnit表呢?


image.png

补充一下程序带存储过程能不能利用上?:

USE [WYC]
GO
/****** Object:  StoredProcedure [dbo].[P_Base_SavePtypeUnit]    Script Date: 01/06/2021 13:22:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER Procedure [dbo].[P_Base_SavePtypeUnit]
(
	@PtypeId		nVarchar(50),
	@nUnit			tinyint,
	@UnitName		nVarchar(8),
	@UnitRate		Numeric(18, 8),
	@RetailPrice	Numeric(18, 4),
	@MinSalePrice	Numeric(18, 4),
	@DefaultPrice	Numeric(18, 4),
	@Barcode		nVarchar(50),
	@TradePrice1	Numeric(18, 4),
	@TradePrice2	Numeric(18, 4),
	@TradePrice3	Numeric(18, 4),
	@TradePrice4	Numeric(18, 4),
	@TradePrice5	Numeric(18, 4),
	@TradePrice6	Numeric(18, 4),
	@TradePrice7	Numeric(18, 4),
	@TradePrice8	Numeric(18, 4),
	@TradePrice9	Numeric(18, 4),
	@TradePrice10	Numeric(18, 4),
	@TradePrice11	Numeric(18, 4),
	@TradePrice12	Numeric(18, 4),
	@TradePrice13	Numeric(18, 4),
	@TradePrice14	Numeric(18, 4),
	@TradePrice15	Numeric(18, 4)
)
AS
  SET NOCOUNT ON
	Select @PtypeId = IsNull(@PtypeId, '')
	Select @UnitName = IsNull(@UnitName, '')
	Select @Barcode = IsNull(@Barcode, '')
	
	if exists(Select 1 From T_Jxc_PtypeUnit Where PtypeId = @PtypeId and nUnit = @nUnit)
		Update T_Jxc_PtypeUnit Set UnitName = @UnitName, UnitRate = @UnitRate, RetailPrice = @RetailPrice, MinSalePrice = @MinSalePrice, DefaultPrice = @DefaultPrice, BarCode = @Barcode,
			TradePrice1 = @TradePrice1, TradePrice2 = @TradePrice2, TradePrice3 = @TradePrice3, TradePrice4 = @TradePrice4, TradePrice5 = @TradePrice5, TradePrice6 = @TradePrice6, 
			TradePrice7 = @TradePrice7, TradePrice8 = @TradePrice8, TradePrice9 = @TradePrice9, TradePrice10 = @TradePrice10, TradePrice11 = @TradePrice11, TradePrice12 = @TradePrice12, 
			TradePrice13 = @TradePrice13, TradePrice14 = @TradePrice14, TradePrice15 = @TradePrice15
		Where PtypeId = @PtypeId and nUnit = @nUnit
	else
		Insert Into T_Jxc_PtypeUnit(PtypeId, nUnit, UnitName, UnitRate, RetailPrice, MinSalePrice, DefaultPrice, BarCode, TradePrice1, TradePrice2, TradePrice3, TradePrice4, 
					TradePrice5, TradePrice6, TradePrice7, TradePrice8, TradePrice9, TradePrice10, TradePrice11, TradePrice12, TradePrice13, TradePrice14, TradePrice15)
		Values(@PtypeId, @nUnit, @UnitName, @UnitRate, @RetailPrice, @MinSalePrice, @DefaultPrice, @Barcode, @TradePrice1, @TradePrice2, @TradePrice3, @TradePrice4, 
					@TradePrice5, @TradePrice6, @TradePrice7, @TradePrice8, @TradePrice9, @TradePrice10, @TradePrice11, @TradePrice12, @TradePrice13, @TradePrice14, @TradePrice15)

补充以下两表的结构和数据,会的大佬帮忙写一下语句!谢谢!

T_Jxc_PtypeUnit.sql

ptype.sql


twshe 发布于 2021-1-6 13:21 (编辑于 2021-1-6 13:31)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
snrtuemcLv8专家互助
发布于2021-1-6 13:21(编辑于 2021-1-6 13:23)
  • twshe twshe(提问者) T_Jxc_PtypeUnit表,对应的商品表的ID,会生成3行数据,这个逻辑一直想不明白。
    2021-01-06 13:25 
  • 北纬六十六度 北纬六十六度 回复 twshe(提问者) 这里应该是超市的计量单位,套或者箱子,一个商品码可以直接刷一箱,包含30个,或者刷一个单个商品
    2021-01-06 14:28 
  • 北纬六十六度 北纬六十六度 回复 twshe(提问者) T_Jxc_PtypeUnit表是支付规格,比如同一个商品,一个多少钱,一箱多少钱,一堆多少钱
    2021-01-06 14:45 
最佳回答
1
北纬六十六度Lv4初级互助
发布于2021-1-6 14:23

这个存储过程已经完成了功能啊,如果有记录的话更新记录,没有记录插入一条记录

  • twshe twshe(提问者) 这个存储过程,好像无效
    2021-01-06 14:30 
  • 北纬六十六度 北纬六十六度 回复 twshe(提问者) 这个过程是单独为T_Jxc_PtypeUnit表添加一条或者更新一条数据过程,这个过程是应该被保存ptype表时候引用三次,来给T_Jxc_PtypeUnit表添加三条数据
    2021-01-06 14:41 
  • twshe twshe(提问者) 回复 北纬六十六度 这个存储过程,只是保存一条数据的时候有用吧,如果其他表批量同步到ptype表的,这个存储过程就无效了
    2021-01-06 14:53 
  • 北纬六十六度 北纬六十六度 回复 twshe(提问者) 其他表同步你不是客户端操作的吧,存储过程都是客户端保存数据的时候调用的
    2021-01-06 16:17 
  • 3关注人数
  • 430浏览人数
  • 最后回答于:2021-1-6 14:23
    请选择关闭问题的原因
    确定 取消
    返回顶部