110,538
社区成员
发帖
与我相关
我的任务
分享
create table 流水表(编号 nvarchar(10))
insert into 流水表 values ('102001')
IF EXISTS(SELECT * FROM sys.objects o WHERE o.object_id = OBJECT_ID('dbo.abc'))
DROP FUNCTION dbo.abc
GO
CREATE FUNCTION dbo.abc
(
@TYPEA NVARCHAR(10),
@TYPEB NVARCHAR(10)
)
RETURNS VARCHAR(15)
BEGIN
DECLARE @ID VARCHAR(15)
IF EXISTS(
SELECT *
FROM 流水表 m
WHERE
@TYPEA+@TYPEB = SUBSTRING(m.编号,1,3)
)
BEGIN
SET @ID = (SELECT MAX(m.编号) FROM 流水表 m WHERE @TYPEA+@TYPEB = SUBSTRING(m.编号,1,3))
SET @ID = RIGHT(@ID, 3) + 1
SET @ID = 1000 + @ID
SET @ID = RIGHT(@ID, 3)
SET @ID = @TYPEA+@TYPEB + CAST(@ID AS CHAR(3))
END
ELSE
SET @ID = @TYPEA+@TYPEB + '001'
RETURN @ID
END
DECLARE @ID VARCHAR(15)
set @ID=dbo.abc('1','02')
select @ID
/*
102002
*/