SQL自定義自增列(通用儲存過程)
阿新 • • 發佈:2019-02-12
ALTER PROCEDURE GetOrderCode ( @NO VARCHAR(MAX) , --字首 @TableName VARCHAR(MAX) , --表名 @ColumnIDName VARCHAR(300) --表中自增列的欄位 ) AS BEGIN DECLARE @MaxId INT DECLARE @sql NVARCHAR(MAX) DECLARE @Parm NVARCHAR(MAX) DECLARE @OrderCode VARCHAR(MAX) SET @sql = 'SELECT @MaxID = ' + @ColumnIDName + ' FROM ' + @TableName --取到表中最大的ID(系統自增的) SET @Parm = N'@MaxID int OUTPUT' EXECUTE sys.sp_executesql @sql, @Parm, @MaxID = @MaxID OUTPUT SELECT @OrderCode = ( @NO + '-' + CONVERT(VARCHAR(8), GETDATE(), 112) + '-' + RIGHT('0000' + CAST(( @MaxID + 1 ) AS VARCHAR(50)), 4) ) SELECT @OrderCode END