最近因为用delphi编数据库程序(多用户),看了sql server2005的书,重点看了sql事务中有关锁和并发控制的部分,但还是有疑问。比如我从编号表(只有一个字段,用于产生编号,保证编号唯一性)中取编号时,在写客户机代码时否只要使用sql事务来控制并发部可以了,
(begin tran
update idtable set id=id+1
select id from idtable
commit tran)
还是需要在服务器上写一个专门用来发编号的程序。
(begin tran
update idtable set id=id+1
select id from idtable
commit tran)
还是需要在服务器上写一个专门用来发编号的程序。
解决方案 »
- 请教RAVE高手,关于RAVE中的纸张设置总是问题
- 请问图形按钮控见,那一种好一点。 有点急,谢谢
- 大家帮我看看这个观点是否正确
- 老问题-----------------再线等
- 很简单的问题:coolbar和MDI窗口最大化的问题
- MDI窗口如何调用一个普通窗口让它showmodel?
- 刚刚接触Oracle,听说Oracle自带一个tiger的例子数据库。要怎么联?我在SQL Plus中输入sys/change_on_install就不知道怎么继续找这个数据
- (版主别骂我, 我已经找过了, 但是没找着)怎样用{$define}定义一个几个单元都能用{$ifdef}来使用的符号常量?
- 在DELPHI如果定义自己的消息处理程序,如果有源程序最好啊了?
- 关于”Build with runtime packages"的难题,请高手回答。
- 无效的窗口句柄
- 挂接实名模拟二代身份证刷卡
这样是最简单如果你的用户没达到每秒同时几个操作,你楼顶的sql也马马虎虎了
最佳的做法是:
update tballid
set fid=fid+1
output fid,fname --此语法sql2005才开始支持
where fname='某个业务表'