函数索引

ALTER FUNCTION [dbo].[fn_subordinates1](@root AS INT)
RETURNS @Subs TABLE
(
  empid INT NOT NULL PRIMARY KEY NONCLUSTERED,
  lvl   INT NOT NULL,
  UNIQUE CLUSTERED(lvl, empid) 
)
AS
begin
declare @lv int
set @lv=0
insert @Subs values(@root,@lv)
while @@rowcount>0
begin
    set @lv=@Lv+1;
    insert @subs
    select b.empid ,@Lv
    from @subs a join dbo.Employees b on a.empid=b.mgrid and lvl=@lv-1
end
return;
end

原文地址:https://www.cnblogs.com/qanholas/p/2854605.html