我学习写的一个ERP小软件,前台销售界面先调用存储过程A判断库存表里的数量是否满足本次销售,如果满足,再调用存储过程B,B执行后带回插入销售表里标识字段产生的djh,前台再用返回的djh用FOR循环语句循环调用存储过程C和D,其中D是修改库存表中的库存的。
在C/S结构下,两台或更多工作站同时工作,会不会发生当A已经判断库存数量满足时,还没调用D时,另一台工作站先行修改了库存,导致库存不足?
补充:我不想用事务控制,太麻烦!
在C/S结构下,两台或更多工作站同时工作,会不会发生当A已经判断库存数量满足时,还没调用D时,另一台工作站先行修改了库存,导致库存不足?
补充:我不想用事务控制,太麻烦!
解决方案 »
- MS-SQL Server 2005 局域网数据最大下载速度才1M吗?
- 如何得到满足条件的数据的下一条记录的记录集?
- 在WindowsXP Pro中文版下安装SqlServer2000,可以成功安装,但是安装后,上面的数据库其他电脑连不上,只能自己电脑连,
- excel数据导入sql server
- 如何替换xml中所有节点指定字符串如“AAA”替换为“BBB”,在线等!!
- 执行任务
- 局域网里一台机链接速率是10mbps 其他都是100 这是什么情况 怎么处理?
- 》》》》》痛苦,居然不能“级连更新”。。。。
- 数据库登录名的配置问题
- 为何出现重复记录
- SQL 字符拼接拆分,同时跟新拆分出来的ID记录
- 请教sql server 搜索通过已知的串编号固定排序问题
要我做,我会这样:
前台先检索要销售货物的库存数量是否够,如够,形成销售单,确认后到数据库中先更改库存表,再插入销售表,再将销售表中的含标识的销售清单返回到前台打印.
多行记录可以一次更新的,只要你有一个表,上面所说的销售单就是一个表,也可以是一个临时生成的表,其中的货物编号是在前次检索时获得的.
update a set 库存量=库存量-b.销售量 from 库存表 a inner join 销售表 b on a.货物编号=b.货物编号
一次搞定.另外,如果是C/S结构,有并行处理,那用事务是必须的,也是基本的,否则,你等着处理烦死人的脏数据吧!
B是插入销售表并带回产生的标识
C是用返回的标识插入销售明细表。
每次B只调用一次,但本次销售有多少种货物就得调用多少次C,B对C是1对多的关系
D修改库存
我在查询分析器里会写事务,但在存储过程里真不知道怎么写?
老师帮帮我
你说的那个临时表是怎么产生的?我的前台没有一句SQL语句,都是通过调用存储过程完成对数据库的操作
用事务怎样实现.
在4个存储过程里都写上下面的语句,可以实现吗:
Createp proccreate proc AA1
as
Begin
BEGIN TRANSACTION
--存储过程内容
(
If @@error<>0
If @@TranCount=1
Rollback Transaction
)--中间出现事务每次要进行以此判断
else
If @@TranCount=1
Commit TRANSACTION
End