2017-01-14 1 views
0

を削除します。SQLサブメニューは、私はすべてのsuのサブメニューとそのサブメニューのサブメニューを削除する1つのメニューを削除すると、私はMENUテーブル(ID、名前、refparent)</p> <p>を持って

SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
-- ============================================= 
-- Author:  <Author,,Name> 
-- Create date: <Create Date,,> 
-- Description: <Description,,> 
-- ============================================= 
ALTER PROCEDURE [dbo].[cms_menu_delete] 
    @refUser bigint, 
    @refPortal int, 
    @refId bigint 
AS 
BEGIN 
SET XACT_ABORT ON 

BEGIN TRANSACTION 


SELECT MENU.Id,MENU.[Order] 
INTO #MENUSAMELEVEL 
FROM MENU 
WHERE MENU.refParent=(SELECT MENU.refParent FROM MENU WHERE [email protected]) 

SELECT MENU.Id 
INTO #MENUSUBS 
FROM MENU 
WHERE [email protected] 

DELETE FROM MENU WHERE Id = @refId 


COMMIT TRANSACTION 

SELECT 'SUCCEED' as Result 

END 

サブメニューは#MENUSUBSになりましたが、削除するだけでは不十分です。彼らはまた、サブメニューを持つことができます。どうすればいいですか?緑を削除すると、オレンジ色のものも削除されますので、どうすればいいですか? enter image description here

写真事前に おかげ

+0

が今まで聞いたすべてのIDを削除します'再帰的なCTE'sの。サンプルデータと期待される結果を追加できますか? –

答えて

関連する問題