xinjiang/DataBase/版本日志/SGGLDB_V2023-11-13-001.sql

40 lines
981 B
MySQL
Raw Normal View History

2024-11-19 09:45:27 +08:00
CREATE PROCEDURE [dbo].[SpGetNewTrustCode5ByProjectId]
@tableName VARCHAR(50),/*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
@columnName VARCHAR(50),/*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
@projectId NVARCHAR(50),/*<EFBFBD><EFBFBD>Ŀ*/
@prefix VARCHAR(50),/*<EFBFBD><EFBFBD>ˮ<EFBFBD>ű<EFBFBD><EFBFBD><EFBFBD>ǰ׺*/
@returnVal NVARCHAR(50) OUTPUT
AS
/*<EFBFBD><EFBFBD>ȡһ<EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD>ţ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD>*/
DECLARE
@sql NVARCHAR(500),
@old NVARCHAR(50),
@newid VARCHAR(50),
@maxId NVARCHAR(50)/*<EFBFBD>ѷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ*/
SELECT @sql=N'SELECT @maxId=MAX('+@columnName+') from '+@tableName+' where ProjectId = ''' + @projectId + '''and CH_TrustType=''1'' and ' + @columnName+' like ' + '''%' + @prefix + '%'''
EXEC sp_executesql @sql, N'@maxId nvarchar(50) OUTPUT', @maxId OUTPUT
/*<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>R1<EFBFBD><EFBFBD>K1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
SET @old=REVERSE(SUBSTRING(REVERSE(@maxId),1,CHARINDEX('-',REVERSE(@maxId))-1))
IF(@old IS NULL)
BEGIN
SET @newid=@prefix+'0001'
END
ELSE
BEGIN
SET @newid = (SELECT MAX(LEFT(@old,4)))+1
SET @newid = @prefix +RIGHT('0000'+@newid,4)
END
SET @returnVal=@newid
GO