我已经为自动增量编号创建了一个存储过程,它会返回相同的结果,这是我不想要的。然后我改变代码序列现在程序正如我预期的那样工作。我想知道下面代码片段的区别
此过程返回相同的结果:
Create procedure AUTOINCNUM
as
begin
set nocount on;
declare @Value int
select @Value = CH_AUTOSERIES from tracker
set @value = @value + 1
return @value
insert into tracker(CH_AUTOSERIES) values(@Value)
end
此程序运行正常
Create procedure AUTOINCNUM
as
begin
set nocount on;
declare @Value int
select @Value = CH_AUTOSERIES from tracker
set @value = @value + 1
insert into tracker(CH_AUTOSERIES) values(@Value)
return @value
end
答案 0 :(得分:0)
1)在要使用自动增量的列上使用IDENTITY。 2)在将新值插入跟踪器表之前,首先通过返回完成proc。 3)强烈建议对该操作使用事务。
IDENTITY列将解决大部分问题,请参阅1)。