USE [Vertragsverwaltung_20160404] GO /****** Object: StoredProcedure [dbo].[sp_vertragselement_details_inaktivieren_get_childs] Script Date: 02.12.2016 09:08:53 ******/ DROP PROCEDURE [dbo].[sp_vertragselement_details_inaktivieren_get_childs] GO /****** Object: StoredProcedure [dbo].[sp_vertragselement_details_inaktivieren_get_childs] Script Date: 02.12.2016 09:08:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: <20.01.2009> -- Description: -- ============================================= CREATE PROCEDURE [dbo].[sp_vertragselement_details_inaktivieren_get_childs] @vertragselementnr int, @mutierer int AS CREATE TABLE #tmpd( [vertragselementnr] [int] , [aktiv] bit ) ON [DEFAULT] insert #tmpd (vertragselementnr, aktiv) values(@vertragselementnr,1) declare @nr int declare @aktiv bit declare xc cursor for select vertragselementnr, aktiv from dbo.vertragselement where parentid=@vertragselementnr open xc fetch next from xc into @nr, @aktiv while @@fetch_status=0 begin insert #tmpd (vertragselementnr, aktiv) values (@nr, @aktiv) exec sp_vertragselement_details_inaktivieren_get_childs_down @nr, 1, 0,-1 fetch next from xc into @nr, @aktiv end close xc deallocate xc declare secondc cursor for select vertragselementnr, aktiv from #tmpd where aktiv=1 open secondc fetch next from secondc into @nr, @aktiv while @@fetch_status = 0 begin if @aktiv=1 begin execute sp_vertragselement_details_inaktivieren @nr, @mutierer end fetch next from secondc into @nr, @aktiv end close secondc deallocate secondc GO