34,587
社区成员
发帖
与我相关
我的任务
分享
CREATE PROCEDURE dbo.CateSote(@tbl NVARCHAR(255), @snID int, @CateID NVARCHAR(255))
AS
begin
execute
('
declare @str varchar(8000)
declare @num varchar(10)
declare @s varchar(10)
declare @len int,@start int,@end int
select @str='''',@s='''',@num='''',@len=12,@start=12,@end=9
if len(@CateID)=8
set @str=right(''000''+rtrim(@snID),3)+rtrim(@CateID)
else
begin
SELECT @num=right(''000''+rtrim(snID),3) from @tbl where left(@CateID,8)=CateID
set @str=rtrim(@num)+rtrim(@CateID)
set @s=substring(@CateID,9,4)
while len(@s)>0
begin
select @num=right(''000''+rtrim(snID),3) from @tbl where left(@CateID,@start)=CateID
set @str=stuff(@str,@len,0,@num)
select @len=@len+8,@start=@start+4,@end=@end+4
select @s=substring(@CateID,@end,4)
end
end
return @str'
)
end
GO