SGGL_JT/DataBase/SpGetNewCode5-2022-10-23-00...

35 lines
1.8 KiB
MySQL
Raw Normal View History

2025-04-07 17:43:30 +08:00
<EFBFBD><EFBFBD>
/****** Object: StoredProcedure [dbo].[SpGetNewCode5] Script Date: 2022/10/23 11:41:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SpGetNewCode5]
@tableName varchar(50),/*h<EFBFBD> T*/
@columnName varchar(30),/*R T*/
@prefix varchar(50),/*Am4l<EFBFBD>SxMR*/
@returnVal nvarchar(50) output
AS
/*<EFBFBD><EFBFBD><EFBFBD>SqSi<EFBFBD><EFBFBD>n<EFBFBD>Nx<EFBFBD>vAm4l<EFBFBD>S*/
declare
@sql nvarchar(500),
@old nvarchar(50),
@newid varchar(50),
@maxId nvarchar(50)/*<EFBFBD>]RM<EFBFBD><EFBFBD>vg'Y<P*/
select @sql=N'SELECT @maxId=MAX(right('+@columnName+',9)) from '+@tableName+' where ' + @columnName+' like ' + '''%' + @prefix + '%'''
EXEC sp_executesql @sql, N'@maxId nvarchar(50) OUTPUT', @maxId OUTPUT
set @old=@maxId
IF(@old is null)
BEGIN
set @newid=@prefix+'00001'
END
ELSE
BEGIN
set @newid = (select max(right(@old,5)))+1
set @newid = @prefix +right('00000'+@newid,5)
END
SET @returnVal=@newid