请教有关sql server并发控制和delphi编程的问题
最近因为用delphi编数据库程序(多用户),看了sql server2005的书,重点看了sql事务中有关锁和并发控制的部分,但还是有疑问。比如我从编号表(只有一个字段,用于产生编号,保证编号唯一性)中取编号时,在写客户机代码时否只要使用sql事务来控制并发部可以了,
(begin tran
update idtable set id=id+1
select id from idtable
commit tran)
还是需要在服务器上写一个专门用来发编号的程序。
[解决办法]
建议用存储过程来给编号递增,且把编号目前的位置计入表中
[解决办法]
如果没有特殊要求,还是用uuid吧,现在的数据库性能都不错,不会有什么大影响。
[解决办法]
支持用存储过程来处理多用户并发申请。
[解决办法]
update tballid
set fid=fid+1
output fid,fname --此语法sql2005才开始支持
where fname='某个业务表'