存储过程返回结果没有变化

时间:2017-02-16 08:04:39

标签: sql sql-server tsql

我已经为自动增量编号创建了一个存储过程,它会返回相同的结果,这是我不想要的。然后我改变代码序列现在程序正如我预期的那样工作。我想知道下面代码片段的区别

此过程返回相同的结果:

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

1 个答案:

答案 0 :(得分:0)

1)在要使用自动增量的列上使用IDENTITY。 2)在将新值插入跟踪器表之前,首先通过返回完成proc。 3)强烈建议对该操作使用事务。

IDENTITY列将解决大部分问题,请参阅1)。