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