如果有IDENTITY: 下一条纪录的序列号: Max(IDENTITYCOL)+1但不能在客户端调用,会造成数据不一致的问题! 最好这样:建一编号表 tabel1 (table_name,id)//存放你系统各需求表的id用下列过程可解决并发控制的问题CREATE PROCEDURE nextno @name int,@last int output AS set nocount on begin tran//开始行锁定记录,确保@last取值唯一 update table1 set id=id+1 WHERE table_name =@name
SELECT @last=id FROM table1 WHERE table_name =@name//结束锁定commit tran return
下一条纪录的序列号:
Max(IDENTITYCOL)+1但不能在客户端调用,会造成数据不一致的问题!
最好这样:建一编号表 tabel1 (table_name,id)//存放你系统各需求表的id用下列过程可解决并发控制的问题CREATE PROCEDURE nextno
@name int,@last int output
AS
set nocount on
begin tran//开始行锁定记录,确保@last取值唯一 update table1 set id=id+1 WHERE table_name =@name
SELECT @last=id FROM table1 WHERE table_name =@name//结束锁定commit tran return