40 lines
981 B
MySQL
40 lines
981 B
MySQL
|
|
|||
|
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
|
|||
|
|
|||
|
|