11
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
|
||||
ALTER PROCEDURE [dbo].[SpGetNewCode3]
|
||||
@tableName VARCHAR(50),/*表名*/
|
||||
@columnName VARCHAR(50),/*列名*/
|
||||
@prefix VARCHAR(100),/*流水号编码前缀*/
|
||||
@returnVal NVARCHAR(200) OUTPUT
|
||||
AS
|
||||
/*获取一个新的流水号(后三位上增加)*/
|
||||
DECLARE
|
||||
@sql NVARCHAR(500),
|
||||
@old NVARCHAR(50),
|
||||
@newid VARCHAR(50),
|
||||
@prefix2 NVARCHAR(100),
|
||||
@maxId NVARCHAR(50)/*已分配的最大值*/
|
||||
SET @prefix2= REPLACE(@prefix, @columnName, '')
|
||||
SELECT @sql=N'SELECT @maxId=MAX('+@columnName+') from '+@tableName+' where ' + @columnName + ' like ' + '''' + @prefix2 + '%'''
|
||||
EXEC sp_executesql @sql, N'@maxId nvarchar(50) OUTPUT', @maxId OUTPUT
|
||||
SET @old=@maxId
|
||||
|
||||
IF(@old IS NULL)
|
||||
BEGIN
|
||||
SET @newid=@prefix+'001'
|
||||
END
|
||||
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @newid = (SELECT MAX(RIGHT(@old,3)))+1
|
||||
SET @newid = @prefix +RIGHT('000'+@newid,3)
|
||||
END
|
||||
|
||||
SET @returnVal=@newid
|
||||
|
||||
GO
|
||||
|
||||
Reference in New Issue
Block a user