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.
76 lines
4.5 KiB
76 lines
4.5 KiB
USE [Vertragsverwaltung_20160404]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[my_servicekatalog_struktur] Script Date: 02.12.2016 09:08:54 ******/
|
|
DROP PROCEDURE [dbo].[my_servicekatalog_struktur]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[my_servicekatalog_struktur] Script Date: 02.12.2016 09:08:54 ******/
|
|
SET ANSI_NULLS OFF
|
|
GO
|
|
SET QUOTED_IDENTIFIER OFF
|
|
GO
|
|
|
|
CREATE proc [dbo].[my_servicekatalog_struktur]
|
|
@mitarbeiternr int,
|
|
@checkstate int
|
|
AS
|
|
|
|
CREATE TABLE #tmpd(
|
|
[servicekatalognr] [int] ,
|
|
[bezeichnung] [varchar] (255) null,
|
|
[parentid] [int] ,
|
|
[securitylevelnr] [int],
|
|
[aktiv] bit
|
|
) ON [DEFAULT]
|
|
|
|
declare @tmp int
|
|
|
|
declare xc cursor for
|
|
select servicekatalognr from servicekatalog
|
|
where parentid=0 and securitylevelnr in (select SecurityLevelNr from dbo.Get_SecurityLevelTab(@mitarbeiternr))
|
|
open xc
|
|
fetch next from xc into @tmp
|
|
while @@fetch_status=0 begin
|
|
execute dbo.my_servicekatalog_struktur_down @tmp,1
|
|
fetch next from xc into @tmp
|
|
end
|
|
close xc
|
|
deallocate xc
|
|
|
|
insert #tmpd (servicekatalognr, bezeichnung, parentid,securitylevelnr,aktiv) values(0,'Service-Katalog',null,0,1)
|
|
--delete from #tmpd where securitylevelnr <
|
|
|
|
-------------------------------------------------------------------
|
|
-- Nur gem. Checkstate gewählte Einträge zurück geben
|
|
-- 0 = nur inaktive Einträge
|
|
-- 1 = nur aktive Einträge
|
|
-- 3 = alle Einträge -> keine Einschränkung in der Resultattabelle
|
|
-------------------------------------------------------------------
|
|
if @checkstate = 0 begin-- inaktiv
|
|
delete from #tmpd where (aktiv=1 and servicekatalognr > 0 and servicekatalognr not in (select parentid from #tmpd where aktiv=0))
|
|
-- select * from #tmpd
|
|
select * into #tmpe from #tmpd
|
|
declare yc cursor for
|
|
select parentid from #tmpe
|
|
open yc
|
|
fetch next from yc into @tmp
|
|
while @@fetch_status=0 begin
|
|
print @tmp
|
|
execute dbo.my_servicekatalog_struktur_up @tmp,1
|
|
fetch next from yc into @tmp
|
|
end
|
|
close yc
|
|
deallocate yc
|
|
delete from #tmpd where servicekatalognr is null
|
|
drop table #tmpe
|
|
end
|
|
if @checkstate = 1 begin -- aktiv
|
|
delete from #tmpd where aktiv=0 and servicekatalognr > 0
|
|
end
|
|
|
|
select distinct * from #tmpd
|
|
drop table #tmpd
|
|
|
|
|
|
|
|
GO
|