函数索引

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

posted @ 2013-01-10 12:57  qanholas  阅读(260)  评论(0编辑  收藏  举报