首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

业务比较复杂的update话语,求解决方案?

2012-11-16 
业务比较复杂的update语句,求解决方案???T_a:IdT_b_id税率(下拉列表)T_b:Id进货单价税后单价差价现在是一

业务比较复杂的update语句,求解决方案???
T_a:
IdT_b_id税率(下拉列表)

T_b:
Id进货单价税后单价差价




现在是一个页面上画出两张表格,分别读取T_a、T_b的数据。
业务要求:当税率(下拉列表)改变时,需要改变“税后单价”同时需要改变“差价”,现在我只完成了修改“税后单价”的功能,做法是通过T_b_id找到T_b对应记录,修改。

由于差价的修改比较复杂(T_b表中省略了很多字段),所以来请教一下。需要通过T_b中的字段“a”和字段“b”的值来比较,然后再做相应操作。请问这种情况下一般怎么做???

说明:第一个要修改的值一条sql语句就可以了,第二个需要做判断,并且需要根据第一条执行后的值来计算。


[解决办法]
建立一个存储过程, 输入变量为 @ID, @税率

然后先
update 表格
set 税率 = @税率
where ID = @ID

然后再update 表格
set 差价 = 你的计算过程
where ID = @ID
AND 你的判断条件 --判断在where中进行,比如字段“a”和字段“b”的值来比较
[解决办法]
需要通过T_b中的字段“a”和字段“b”的值来比较,然后再做相应操作。请问这种情况下一般怎么做???

这个不清除你具体的表结构
不过一般这种判断,条件不多用if ... begin ...end 

或者用case when ... then ... else ... end 


[解决办法]
这个你用触发器不就可以咯
[解决办法]

探讨

引用:

这个你用触发器不就可以咯


触发器好像不合适吧,应该T_a中的多列变更都会导致T_b的变更。。。


还有一个问题,存储过程里面可以用事物吗?

[解决办法]
存储过程中使用事务实例

请点击:http://www.cnblogs.com/RascallySnake/archive/2010/05/17/1737298.html
[解决办法]
级联处理在小数据量的时候用触发器会比较好,大数据量的时候使用外键等也合适。

热点排行