SQl Server ÎÊÌâÇóÖú
RoleName RoleID ParentID
ϵͳ¹ÜÀíÔ± 1 0
¹ÜÀíÔ±1 2 1
¹ÜÀíÔ±2 3 1
¹ÜÀíÔ±11 4 2
¹ÜÀíÔ±22 5 3
¹ÜÀíÔ±33 6 3
¹ÜÀíÔ±111 7 4
ÎÒÏÖÔÚÏëʵÏÖ¼¶ÁªÉ¾³ý
ɾ³ý¹ÜÀíÔ±1µÄ»° ¹ÜÀíÔ±11£¬¹ÜÀíÔ±111 Ò²Òª¸ú×Åɾ³ý
ÇëÎÊÕâ¸ö´æ´¢¹ý³ÌÔõôд°¡£¿
ÂÛ̳̫¶àÁË
ÎÒÒ²¿´µ½¹ý£¬µ«Ò»ÏÂ×ÓÍüÁË£¬Çë°ïÖú
ËÑË÷ÏÂBOM
SQL code:
IF OBJECT_ID('TB') IS NOT NULL DROP TABLE TB
IF OBJECT_ID('TEMPDB..#TEMP') IS NOT NULL DROP TABLE #TEMP
IF OBJECT_ID('PROC_DELETE') IS NOT NULL DROP PROCEDURE PROC_DELETE
GO
CREATE TABLE TB(RoleName VARCHAR(50),ROLEID INT,PARENTID INT)
INSERT INTO TB
SELECT 'ϵͳ¹ÜÀíÔ±', 1, 0 UNION ALL
SELECT '¹ÜÀíÔ±1', 2, 1 UNION ALL
SELECT '¹ÜÀíÔ±2', 3, 1 UNION ALL
SELECT '¹ÜÀíÔ±11', 4, 2 UNION ALL
SELECT '¹ÜÀíÔ±22', 5, 3 UNION ALL
SELECT '¹ÜÀíÔ±33', 6, 3 UNION ALL
SELECT '¹ÜÀíÔ±111', 7, 4
GO
CREATE PROCEDURE PROC_DELETE(@ID INT)
AS
BEGIN
SELECT ROLEID INTO #TEMP from TB WHERE ROLEID=@ID
DELETE from TB WHERE ROLEID=@ID
WHILE EXISTS(SELECT 1 from TB WHERE PARENTID IN (SELECT ROLEID from #TEMP))
BEGIN
INSERT I
Ïà¹ØÎÊ´ð£º
ÎÒÓжà¸ö±íA B C ½á¹¹ÊÇÒ»ÑùµÄ£¬¶¼ÓÐ2¸ö×Ö¶ÎnameºÍcontent,ÎÒÒªËÑË÷ËùÒÔ±íËùÓÐ×Ö¶ÎÖаüº¬¡°Öйú¡±µÄÄÚÈÝ Õâ¸öSQLÓï¾äÔõôд
ÈçºÎ½«¶à¸ö±íµÄ²éѯ½á¹ûÁ¬³ÉÒ»¸ö±í Õâ¸öSQLÓï¾äÔõôд ±íµÄ½á¹¹ÊÇÒ»ÑùµÄ
ÀýÈç£ ......
--drop table #T1
--drop table #T2
create Table #T1(ID int,
QueryID nvarchar(20),
ResultID1 nvarchar(20),
ResultID2 nvarchar(20))
create Table #T2(SortNo int,
QueryID nvarchar(20),
ResultID1 nv ......
Id Name Flag
1 ÕÅÈý 1
2 ÍõÎå 3
3 ÕÅÈý 1
4 ÀîËÄ 2
5 ÕÅÈý 1
6 ÀîËÄ 2
ÎÒÏëÊä³öµÄʱºò±ä³ÉÕâÑù
Id Name Flag
1 ÕÅÈý 1 & ......
<table style="width: 1000px"><tr>
<td style="height: 38px; width: 35px;">
ÐÕÃû</td>
......
½ñÌì×öÁËÒ»¸ö´æ´¢¹ý³Ì »·¾³ÊÇSQL2000Êý¾Ý¿â
´óÖÂÈçÏÂ
½¨Á¢ÁÙʱ±í
¶¨ÒåÔ±¹¤Óαê
Ñ»·Ô±¹¤£¨ÊôÓÚ1¸ö¹«Ë¾)
......