sql中自動生成ID編號
阿新 • • 發佈:2019-02-16
alter PROCEDURE ListIdBuild
(
@action INT = 1, -- 型別 如1是生成一種編號,2是生成另一種編號
@lstId NVARCHAR(50) = NULL OUTPUT
)
AS
DECLARE
@prefix NVARCHAR(9),
@maxId INT,
@lstPre NVARCHAR(2)
BEGIN
SET @prefix = CONVERT(nchar(6), GETDATE(), 12)
IF @action = 1 --型別
BEGIN
SELECT @lstId = MAX([Id]) FROM users WHERE SUBSTRING([Id], 2, 2) = LEFT(@prefix, 2)
SET @lstPre = 'U'
END
IF @lstId IS NULL SET @lstId = '00000'
SET @lstId = RIGHT(@lstId, 5)
SET @maxId = CAST (@lstId AS int) + 1
SET @lstId = CONVERT(NVARCHAR(12), @maxId)
SET @lstId = RIGHT('000000' + @lstId, 5)
SET @lstId = @lstPre+ @prefix + @lstId
END
(
@action INT = 1, -- 型別 如1是生成一種編號,2是生成另一種編號
@lstId NVARCHAR(50) = NULL OUTPUT
)
AS
DECLARE
@prefix NVARCHAR(9),
@maxId INT,
@lstPre NVARCHAR(2)
BEGIN
SET @prefix = CONVERT(nchar(6), GETDATE(), 12)
IF @action = 1 --型別
BEGIN
SELECT @lstId = MAX([Id]) FROM users WHERE SUBSTRING([Id], 2, 2) = LEFT(@prefix, 2)
SET @lstPre = 'U'
END
IF @lstId IS NULL SET @lstId = '00000'
SET @lstId = RIGHT(@lstId, 5)
SET @maxId = CAST (@lstId AS int) + 1
SET @lstId = CONVERT(NVARCHAR(12), @maxId)
SET @lstId = RIGHT('000000' + @lstId, 5)
SET @lstId = @lstPre+ @prefix + @lstId
END