我设想先先从数据库里提取出当天最大的订单编号(如20121124005),在C#里面用代码将该编号进行加1操作,然后再把加1后的订单编号写入数据库。因为是要做订票网站,为了实现订单编号不重复,我打算用锁或事物来处理。但是这是问题出现了,begin tran
select(订单编号) ....
insert(@加1后的订单编号).....
commit tran
这过存储过程没等我把(@加1后的订单编号)传进去就进行了insert(@加1后的订单编号).....操作,当时(@加1后的订单编号为空。
各位有解决上述问题的方法吗?
select(订单编号) ....
insert(@加1后的订单编号).....
commit tran
这过存储过程没等我把(@加1后的订单编号)传进去就进行了insert(@加1后的订单编号).....操作,当时(@加1后的订单编号为空。
各位有解决上述问题的方法吗?
解决方案 »
- 一个程序需要连接几次数据库?
- 求一份比价表中,可比部分的上次采购金额
- ***************请问怎么样查看一个数据表所占的页数以及索引页数.不连续的空间信息*************
- 关于sql server2000下Additional information: 拒绝了对对象 'sysjobs'(数据库 'msdb',所有者 'dbo')的 SELECT 权限。
- 如何取得最新日期的数据
- 如果一个表中字段的数量太大,会有问题吗?请给点意见!!
- 原本只允许sql server身份验证,现在要使其变成windows身份验证怎么做?
- 如何用存储过程将两个表中查询到的信息结合起来
- 急聘Pb程序员与Delphi程序员
- 我的WIN2000为什么ping不到自己
- 数据行数 转换问题
- sql 字符串行转成列
1、你要等待前端即用户的响应,这时可能会导致锁的持有时间过长影响性能甚至死锁。
2、如果你前端操作时间过程。可能在多并发的时候,别人已经插入数据,这样你获取的就不是当前最大的了。
可以考虑全部在存储过程里面实现,类似:
insert into tb(xxx)
select max(id) from tb具体可以看看:http://blog.csdn.net/dba_huangzj/article/details/7685162