• Please, I'm a beginner.

    After reading Larry Sumuri tutorial on Seral ID Auto generation, I created a procedure.

    create table RefVal_SID

    (

    SID int not null,

    constraint pk_refval_sid primary key clustered (SID asc)

    )

    create procedure AutogenerateID

    @startchar char(1), --first letter

    @result varchar(8) output

    as

    begin

    set nocount on;

    declare @CurrentSID int

    declare @CurrentYear Varchar(4)

    declare @UniqueID varchar(8)

    declare @Lenght int

    declare @GeneratedID int

    declare @ConvID varchar(3)

    begin try

    begin TRAN mytran

    set @CurrentSID=(select SID from RefVal_SID)

    set @CurrentYear=(select year(getdate()))

    if @CurrentSID is null begin

    set @CurrentSID=1

    end

    else

    begin

    set @CurrentSID=@CurrentSID+1

    end

    set @GeneratedID=@CurrentSID

    set @ConvID=Convert(Varchar(3),@GeneratedID)

    set @Lenght=Len(@GeneratedID)

    if @Lenght = 1 begin

    set @UniqueID = @startchar+@CurrentYear+'00'+@ConvID

    end

    if @Lenght = 2

    begin

    set @UniqueID = @startchar+@CurrentYear+'0'+@ConvID

    end

    if @Lenght=3

    set @UniqueID =@startchar+@CurrentYear+@ConvID

    insert into RefVal_SID

    values(@CurrentSID)

    delete from RefVal_SID where SID <>@CurrentSID

    COMMIT TRAN mytran

    set @Result = @UniqueID

    end try

    begin catch

    rollback tran mytran

    set @Result = 'Failed'

    end catch

    end

    I created this table to test the procedure but I don't really know how to execute the procedure inside.

    create table test

    (

    testID varchar(8) as execute AutogenerateID 'T',

    myname varchar(25),

    constraint pk_test primary key clustered (testID asc)

    )

    Please help me