You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
3.1 KiB
44 lines
3.1 KiB
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
|