USE [Vertragsverwaltung_20160404] GO /****** Object: StoredProcedure [dbo].[sp_vertragselement_details_inaktivieren_get_childs_down] Script Date: 02.12.2016 09:08:53 ******/ DROP PROCEDURE [dbo].[sp_vertragselement_details_inaktivieren_get_childs_down] GO /****** Object: StoredProcedure [dbo].[sp_vertragselement_details_inaktivieren_get_childs_down] Script Date: 02.12.2016 09:08:55 ******/ SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO CREATE proc [dbo].[sp_vertragselement_details_inaktivieren_get_childs_down] @Root int, @imandant int, @vnr int, @tmpid int AS BEGIN SET NOCOUNT ON declare @vertragselementnr int, @bezeichnung varchar(50), @nr int, @parent int, @seclevel int, @aktiv bit select @bezeichnung=bezeichnung, @nr=vertragselementnr, @parent=parentid, @seclevel=securitylevelnr, @aktiv=aktiv from vertragselement where vertragselementnr=@root if @tmpid<>-1 set @parent=@tmpid insert into #tmpd (vertragselementnr, aktiv) values (@nr, @aktiv) set @vertragselementnr=(select min (vertragselementnr) from vertragselement where parentid=@root) while @vertragselementnr is not null begin exec sp_vertragselement_details_inaktivieren_get_childs_down @vertragselementnr, 1, @vnr,-1 set @vertragselementnr=(select min (vertragselementnr) from dbo.vertragselement where parentid=@root and vertragselementnr>@vertragselementnr) end end GO