SQLServer中一个多用户自动生成编号的过程

    技术2022-05-11  110

    SQLServer中一个多用户自动生成编号的过程 if not exists (select * from dbo.sysobjects where id = object_id(N'[IndexTable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)create table IndexTable(Ex char(20), num integer)

    go

    create procedure SetIndex @Ex char(20),@result char(30) output,@Fmt integeras  declare @num char(10)  SET NOCOUNT on  if not exists(select num from indextable where Ex=@ex )   insert into indextable values(@ex,1)  else   update indextable set num=num+1 where Ex=@ex  select @num=cast(num as char(10)) from indextable where ex=@ex   select @num=space(@fmt-len(@num))+@num  select @num=replace(@num,' ','0')  select @result=rtrim(@ex)+rtrim(@num)  SET NOCOUNT offgo

    --------

    在delphi中调用

    procedure TForm1.Button1Click(Sender: TObject);begin  StoredProc1.ParamByName('@fmt').AsInteger:=3;  StoredProc1.ExecProc;  showmessage(StoredProc1.ParamByName('@result').value)end;

    -----------参数@ex表示前缀,@fmt表示数字长度,@result表示返回数据返回User001


    最新回复(0)