sqlserver ×Ô¶¨Ò庯Êýreturn ÎÊÌâ
SQL code:
create function subDepartment(@id varchar(36),@flag int)
returns @re table(subid varchar(36))
as
begin
insert @re select deli_id from departmentlink where deli_type=32
and deli_id =@id
if @flag=0
return
while @@rowcount>0
begin
insert @re
select a.deli_id from departmentlink a ,@re b
where a.deli_type=32 and a.deli_depa_id =b.subid
and a.deli_id not in (select subid from @re)
end
return
end
º¯ÊýµÄ×÷ÓÃÊÇ´´½¨ÕÒ³öÒ»¸öµ¥Î»µÄËùÓÐϼ¶µ¥Î»»òÕß¾ÍÕÒ³ö±¾µ¥Î»¡£
µÚÒ»¸ö²ÎÊý±íʾ£¬Éϼ¶ID£¬¸ù¾ÝËûÕÒ³öËûÏÂÃæµÄËùÓÐϼ¶ID,
µÚ¶þ¸ö²ÎÊý±íʾ£¬ÊÇÒ»¸ö±ê¼Ç£¬Èç¹ûÊÇ0¾Í±íʾֻ·µ»Ø±¾Éí£¬Èç¹ûÊÇ·Ç0 ¾ÍÖ´ÐÐÕÒϼ¶µÄ´úÂë¡£¡£
µ«ÊDz»¹ÜÎÒÊÇ
select * from subDepartment('56B4217998F243BA8EF2ABC456C8D3A1',0)
select * from subDepartment('56B4217998F243BA8EF2ABC456C8D3A1',999)
·µ»ØµÄ½á¹û¶¼ÊÇÒ»ÌõÊý¾Ý¡£¡£Ò²¾Í±íʾ²»¹Üflag±äÁ¿ÊÇ£¬0 »¹ÊÇ999¶¼@flag=0¶¼ÊÇÕæ¡£¡£¡£¡£¸ßÊÖ°ïæ°¡
ÄãµÄWHEREµÄÖÕÖ¹Ìõ¼þÄØ£¿Ã¿´ÎÑ»·¶¼Ã»±ä»¯°É
ÎÒÒÔǰдµÄÒ»¸öСÀý×Ó£¬·¢ÉÏÀ´¹©Äã²Î¿¼
SQL code:
if not object_id('tb') is null drop table tb
IF OBJECT_ID('FUN_MU
Ïà¹ØÎÊ´ð£º
´ó¼ÒÓÐûÓÐ ´æ´¢¹ý³Ì·ÖÒ³µÄÀý×Ó£¬¹²Ïíһϣ¬Ð»Ð»£¡£¡£¡
http://wyf.javaeye.com/blog/462396
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
/*--ʵÏÖ·ÖÒ³µÄͨÓô洢¹ý³Ì
......
ÐèҪʹÓÃSQL Server2000»ò2005
ÐèÒªÉè¼ÆÊý¾ÝÓÐЧÑéÖ¤,·Àֹ¼Èë²»ºÏ·¨Êý¾Ý
ÐèÒªÉè¼Æ´æ´¢¹ý³Ì»ò×Ô¶¨Ò庯ÊýÍê³ÉÊý¾ÝµÄ¼Èë\ÐÞ¸Ä\ɾ³ý\ͳ¼Æ\²éѯ
Êý¾Ý¿â´ó²¿·Ö±íÎÒÒѾ½¨Á¢,Ö»ÊǸ¨ÖúÐÔµÄС±í½¨Á¢µÄ»¹²»È«
......
ÈçÌâ¡£
ÎÒÏ붨ÆÚÖ´ÐгÌÐò£¬É¾³ý²»ÓõÄÊý¾Ý£¬ÊÕËõÒ»ÏÂÊý¾Ý¿â£¬Æ½Ê±Ê¹ÓõÄʱºò£¬ÈÕÖ¾×î´óÎļþ´óСΪÏÞÖÆ200MB£¬
µ«ÊÇÊÕËõµÄʱºò£¬»á²úÉú´óÁ¿ÈÕÖ¾£¬Èç¹û³¬¹ýÏÞÖÆ£¬ÔòÊÕËõÊý¾Ý¿âʱ»áʧ°Ü£¬ÎÒÏë¸ÄΪ×î´óÎļþ´óС²»Ê ......
ÏÖÔÚÓÐÒ»ÕŲ¿Ãűí(SYS_DEPT)½á¹¹ÈçÏ£º
DEPT_ID(²¿ÃÅID) DEPT_NAME(²¿ÃÅÃû³Æ) DEPT_PARENT_ID(²¿ÃŸ¸½ÚµãÃû³Æ)
ҪʵÏÖµÄÄÚÈÝΪ£º
¸ù¾ÝÉÏÃæÕâÕŲ¿ÃűíÖеÄÈÎÒâÒ»¸öDEPT_ID(²¿ ......