35 lines
1.8 KiB
Transact-SQL
35 lines
1.8 KiB
Transact-SQL
|
||
/****** 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),/*表名*/
|
||
@columnName varchar(30),/*列名*/
|
||
@prefix varchar(50),/*流水号编码前缀*/
|
||
@returnVal nvarchar(50) output
|
||
AS
|
||
/*获取危险源代码的流水号*/
|
||
declare
|
||
@sql nvarchar(500),
|
||
@old nvarchar(50),
|
||
@newid varchar(50),
|
||
@maxId nvarchar(50)/*已分配的最大值*/
|
||
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
|
||
|