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.

1207 lines
45 KiB

USE [BEA]
GO
/****** Object: StoredProcedure [dbo].[sp_rpt_Vergleiche] Script Date: 15.12.2013 09:13:52 ******/
DROP PROCEDURE [dbo].[sp_rpt_Vergleiche]
GO
/****** Object: StoredProcedure [dbo].[sp_rpt_Vergleiche] Script Date: 15.12.2013 09:13:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_rpt_Vergleiche] @sqlwhere VARCHAR(255)
AS
BEGIN
DECLARE @t1 TABLE
(
funktionsnummer VARCHAR(255) ,
funktionsbezeichnung VARCHAR(255) ,
plattform VARCHAR(255) ,
verwaltungmit VARCHAR(255) ,
verwaltungdurch VARCHAR(255) ,
berechtigungIn VARCHAR(255) ,
berechtigungfuer VARCHAR(255) ,
eigentuemer VARCHAR(255)
)
DECLARE @t2 TABLE
(
funktionsnummer VARCHAR(255) ,
funktionsbezeichnung VARCHAR(255) ,
plattform VARCHAR(255) ,
verwaltungmit VARCHAR(255) ,
verwaltungdurch VARCHAR(255) ,
berechtigungIn VARCHAR(255) ,
berechtigungfuer VARCHAR(255) ,
eigentuemer VARCHAR(255)
)
DECLARE @param1 VARCHAR(255)
DECLARE @param2 VARCHAR(255)
DECLARE @paramtyp1 INT
DECLARE @paramtyp2 INT
SET @paramtyp1 = 0
SET @paramtyp2 = 0
DECLARE @fnr VARCHAR(255)
IF CHARINDEX('and', @sqlwhere, 0) > 1
BEGIN
DECLARE @tw1 VARCHAR(255)
DECLARE @tw2 VARCHAR(255)
SET @tw1 = SUBSTRING(@sqlwhere, 0,
CHARINDEX('and', @sqlwhere, 0))
SET @tw2 = SUBSTRING(@sqlwhere, CHARINDEX('and', @sqlwhere, 0),
LEN(@sqlwhere) - CHARINDEX('and',
@sqlwhere, 0))
--param1
IF CHARINDEX('TGNUMMER', UPPER(@tw1), 0) > 0
BEGIN
SET @paramtyp1 = 1
SELECT @param1 = SUBSTRING(@tw1,
CHARINDEX('=', @tw1, 0)
+ 3, 6)
END
IF CHARINDEX('FUNKTIONSSTELLE', UPPER(@tw1), 0) > 0
BEGIN
SET @paramtyp1 = 2
SELECT @param1 = SUBSTRING(@tw1,
CHARINDEX('=', @tw1) + 3,
8)
END
-- param2
IF CHARINDEX('TGNUMMER', UPPER(@tw2), 0) > 0
BEGIN
SET @paramtyp2 = 1
SELECT @param2 = SUBSTRING(@tw2,
CHARINDEX('=', @tw2, 0)
+ 3, 6)
END
IF CHARINDEX('FUNKTIONSSTELLE', UPPER(@tw2), 0) > 0
BEGIN
SET @paramtyp2 = 2
SELECT @param2 = SUBSTRING(@tw2,
CHARINDEX('=', @tw2) + 3,
8)
END
IF @paramtyp1 = 1
BEGIN
INSERT @t1
SELECT *
FROM [dbo].[fnkt_get_tgdata_Data](@param1)
END
IF @paramtyp1 = 2
BEGIN
SELECT @fnr = [FunktionstelleNr]
FROM dbo.Funktionstelle
WHERE [Funktionsstelle] = @param1 AND Aktiv=1
INSERT @t1
SELECT DISTINCT
*
FROM dbo.fnkt_get_Report_Data(@fnr)
END
IF @paramtyp2 = 1
BEGIN
INSERT @t2
SELECT *
FROM [dbo].[fnkt_get_tgdata_Data](@param2)
END
IF @paramtyp2 = 2
BEGIN
SELECT @fnr = [FunktionstelleNr]
FROM dbo.Funktionstelle
WHERE [Funktionsstelle] = @param2 AND aktiv=1
INSERT @t2
SELECT DISTINCT
*
FROM dbo.fnkt_get_Report_Data(@fnr)
END
END
IF CHARINDEX('DIFFERENZ', UPPER(@sqlwhere), 0) > 0
GOTO differenz
ELSE
GOTO vollstaendig
vollstaendig:
DECLARE @t3 TABLE
(
Zeile INT ,
Funktionsnummer1 VARCHAR(255) ,
Funktionsbezeichnung1 VARCHAR(255) ,
Plattform1 VARCHAR(255) ,
Verwaltungmit1 VARCHAR(255) ,
Verwaltungdurch1 VARCHAR(255) ,
BerechtigungIn1 VARCHAR(255) ,
Berechtigungfuer1 VARCHAR(255) ,
Eigentuemer1 VARCHAR(255) ,
Funktionsnummer2 VARCHAR(255) ,
Funktionsbezeichnung2 VARCHAR(255) ,
Plattform2 VARCHAR(255) ,
Verwaltungmit2 VARCHAR(255) ,
Verwaltungdurch2 VARCHAR(255) ,
BerechtigungIn2 VARCHAR(255) ,
Berechtigungfuer2 VARCHAR(255) ,
Eigentuemer2 VARCHAR(255)
)
DECLARE @t4 TABLE
(
Zeile INT ,
Funktionsnummer1 VARCHAR(255) ,
Funktionsbezeichnung1 VARCHAR(255) ,
Plattform1 VARCHAR(255) ,
Verwaltungmit1 VARCHAR(255) ,
Verwaltungdurch1 VARCHAR(255) ,
BerechtigungIn1 VARCHAR(255) ,
Berechtigungfuer1 VARCHAR(255) ,
Eigentuemer1 VARCHAR(255) ,
Funktionsnummer2 VARCHAR(255) ,
Funktionsbezeichnung2 VARCHAR(255) ,
Plattform2 VARCHAR(255) ,
Verwaltungmit2 VARCHAR(255) ,
Verwaltungdurch2 VARCHAR(255) ,
BerechtigungIn2 VARCHAR(255) ,
Berechtigungfuer2 VARCHAR(255) ,
Eigentuemer2 VARCHAR(255)
)
SELECT plattform ,
verwaltungmit ,
verwaltungdurch ,
berechtigungIn ,
berechtigungfuer ,
eigentuemer ,
plattform + verwaltungmit + verwaltungdurch + berechtigungin
+ berechtigungfuer AS sort
INTO #tmp1
FROM @t1
--EXCEPT
--SELECT plattform ,
-- verwaltungmit ,
-- verwaltungdurch ,
-- berechtigungIn ,
-- berechtigungfuer ,
-- eigentuemer
--FROM @t2
SELECT plattform ,
verwaltungmit ,
verwaltungdurch ,
berechtigungIn ,
berechtigungfuer ,
eigentuemer ,
plattform + verwaltungmit + verwaltungdurch + berechtigungin
+ berechtigungfuer AS sort
INTO #tmp2
FROM @t2
--EXCEPT
--SELECT plattform ,
-- verwaltungmit ,
-- verwaltungdurch ,
-- berechtigungIn ,
-- berechtigungfuer ,
-- eigentuemer
--FROM @t1
ALTER TABLE #tmp1 ADD Funktionsnummer VARCHAR(255)
ALTER TABLE #tmp1 ADD Funktionsbezeichnung VARCHAR(255)
ALTER TABLE #tmp2 ADD Funktionsnummer VARCHAR(255)
ALTER TABLE #tmp2 ADD Funktionsbezeichnung VARCHAR(255)
DECLARE @fbe VARCHAR(255)
SELECT @fnr = funktionsnummer
FROM @t1
SELECT @fbe = funktionsbezeichnung
FROM @t1
UPDATE #tmp1
SET Funktionsnummer = @fnr
UPDATE #tmp1
SET funktionsbezeichnung = @fbe
SELECT @fnr = funktionsnummer
FROM @t2
SELECT @fbe = funktionsbezeichnung
FROM @t2
UPDATE #tmp2
SET Funktionsnummer = @fnr
UPDATE #tmp2
SET funktionsbezeichnung = @fbe
DECLARE @Zeile INT ,
@Zeile1 INT ,
@Zeile2 INT ,
@Funktionsnummer1 VARCHAR(255) ,
@Funktionsbezeichnung1 VARCHAR(255) ,
@Plattform1 VARCHAR(255) ,
@Verwaltungmit1 VARCHAR(255) ,
@Verwaltungdurch1 VARCHAR(255) ,
@BerechtigungIn1 VARCHAR(255) ,
@Berechtigungfuer1 VARCHAR(255) ,
@Eigentuemer1 VARCHAR(255) ,
@Funktionsnummer2 VARCHAR(255) ,
@Funktionsbezeichnung2 VARCHAR(255) ,
@Plattform2 VARCHAR(255) ,
@Verwaltungmit2 VARCHAR(255) ,
@Verwaltungdurch2 VARCHAR(255) ,
@BerechtigungIn2 VARCHAR(255) ,
@Berechtigungfuer2 VARCHAR(255) ,
@Eigentuemer2 VARCHAR(255) ,
@sort1 VARCHAR(255) ,
@sort2 VARCHAR(255),
@inserted INT,
@ssort varchar(255)
SET @ssort=''
SET @zeile = 10
SELECT @fnr = funktionsnummer
FROM @t2
SELECT @fbe = funktionsbezeichnung
FROM @t2
DECLARE xc CURSOR
FOR
SELECT *
FROM #tmp1
ORDER BY sort
OPEN xc
FETCH NEXT FROM xc INTO @plattform1, @verwaltungmit1,
@verwaltungdurch1, @berechtigungin1, @berechtigungfuer1,
@eigentuemer1, @sort1, @funktionsnummer1, @funktionsbezeichnung1
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE xx CURSOR
FOR
SELECT *
FROM #tmp2
WHERE sort < @sort1 AND sort > @ssort
ORDER BY sort
OPEN xx
FETCH NEXT FROM xx INTO @plattform2, @verwaltungmit2,
@verwaltungdurch2, @berechtigungin2, @berechtigungfuer2,
@eigentuemer2, @sort2, @funktionsnummer2,
@funktionsbezeichnung2
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT @t3
( Zeile ,
Funktionsnummer1 ,
Funktionsbezeichnung1 ,
Plattform1 ,
Verwaltungmit1 ,
Verwaltungdurch1 ,
BerechtigungIn1 ,
Berechtigungfuer1 ,
Eigentuemer1 ,
Funktionsnummer2 ,
Funktionsbezeichnung2 ,
Plattform2 ,
Verwaltungmit2 ,
Verwaltungdurch2 ,
BerechtigungIn2 ,
Berechtigungfuer2 ,
Eigentuemer2
)
VALUES ( @zeile ,
'' ,
'' ,
'' ,
'' ,
'' ,
'' ,
'' ,
'' ,
@funktionsnummer2 ,
@Funktionsbezeichnung2 ,
@Plattform2 ,
@Verwaltungmit2 ,
@Verwaltungdurch2 ,
@BerechtigungIn2 ,
@Berechtigungfuer2 ,
@Eigentuemer2
)
SET @ssort=@sort2
FETCH NEXT FROM xx INTO @plattform2, @verwaltungmit2,
@verwaltungdurch2, @berechtigungin2,
@berechtigungfuer2, @eigentuemer2, @sort2,
@funktionsnummer2, @funktionsbezeichnung2
END
CLOSE xx
DEALLOCATE xx
SET @inserted=0
DECLARE xx CURSOR
FOR
SELECT *
FROM #tmp2
WHERE sort = @sort1
OPEN xx
FETCH NEXT FROM xx INTO @plattform2, @verwaltungmit2,
@verwaltungdurch2, @berechtigungin2, @berechtigungfuer2,
@eigentuemer2, @sort2, @funktionsnummer2,
@funktionsbezeichnung2
WHILE @@FETCH_STATUS = 0
BEGIN
SET @inserted=1
INSERT @t3
( Zeile ,
Funktionsnummer1 ,
Funktionsbezeichnung1 ,
Plattform1 ,
Verwaltungmit1 ,
Verwaltungdurch1 ,
BerechtigungIn1 ,
Berechtigungfuer1 ,
Eigentuemer1 ,
Funktionsnummer2 ,
Funktionsbezeichnung2 ,
Plattform2 ,
Verwaltungmit2 ,
Verwaltungdurch2 ,
BerechtigungIn2 ,
Berechtigungfuer2 ,
Eigentuemer2
)
VALUES ( @zeile ,
@funktionsnummer1 ,
@Funktionsbezeichnung1 ,
@Plattform1 ,
@Verwaltungmit1 ,
@Verwaltungdurch1 ,
@BerechtigungIn1 ,
@Berechtigungfuer1 ,
@Eigentuemer1 ,
@funktionsnummer2 ,
@Funktionsbezeichnung2 ,
@Plattform2 ,
@Verwaltungmit2 ,
@Verwaltungdurch2 ,
@BerechtigungIn2 ,
@Berechtigungfuer2 ,
@Eigentuemer2
)
SET @ssort=@sort1
FETCH NEXT FROM xx INTO @plattform2, @verwaltungmit2,
@verwaltungdurch2, @berechtigungin2,
@berechtigungfuer2, @eigentuemer2, @sort2,
@funktionsnummer2, @funktionsbezeichnung2
END
CLOSE xx
DEALLOCATE xx
IF @inserted=0 begin
INSERT @t3
( Zeile ,
Funktionsnummer1 ,
Funktionsbezeichnung1 ,
Plattform1 ,
Verwaltungmit1 ,
Verwaltungdurch1 ,
BerechtigungIn1 ,
Berechtigungfuer1 ,
Eigentuemer1 ,
Funktionsnummer2 ,
Funktionsbezeichnung2 ,
Plattform2 ,
Verwaltungmit2 ,
Verwaltungdurch2 ,
BerechtigungIn2 ,
Berechtigungfuer2 ,
Eigentuemer2
)
VALUES ( @zeile ,
@funktionsnummer1 ,
@Funktionsbezeichnung1 ,
@Plattform1 ,
@Verwaltungmit1 ,
@Verwaltungdurch1 ,
@BerechtigungIn1 ,
@Berechtigungfuer1 ,
@Eigentuemer1 ,
'' ,
'' ,
'' ,
'' ,
'' ,
'' ,
'' ,
''
)
end
SET @zeile = @zeile + 10
FETCH NEXT FROM xc INTO @plattform1, @verwaltungmit1,
@verwaltungdurch1, @berechtigungin1, @berechtigungfuer1,
@eigentuemer1, @sort1, @funktionsnummer1,
@funktionsbezeichnung1
END
CLOSE xc
DEALLOCATE xc
SELECT * FROM @t3
RETURN
DECLARE @rc INT
SELECT @fnr = funktionsnummer
FROM @t1
SELECT @fbe = funktionsbezeichnung
FROM @t1
SET @zeile = 10
DECLARE xc CURSOR
FOR
SELECT *
FROM #tmp2
OPEN xc
FETCH NEXT FROM xc INTO @plattform1, @verwaltungmit1,
@verwaltungdurch1, @berechtigungin1, @berechtigungfuer1,
@eigentuemer1, @SORT1, @funktionsnummer1, @funktionsbezeichnung1
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @rc = COUNT(*)
FROM @t3
WHERE zeile = @zeile
IF @rc = 0
BEGIN
INSERT @t3
( Zeile ,
Funktionsnummer1 ,
Funktionsbezeichnung1 ,
Plattform1 ,
Verwaltungmit1 ,
Verwaltungdurch1 ,
BerechtigungIn1 ,
Berechtigungfuer1 ,
Eigentuemer1 ,
Funktionsnummer2 ,
Funktionsbezeichnung2 ,
Plattform2 ,
Verwaltungmit2 ,
Verwaltungdurch2 ,
BerechtigungIn2 ,
Berechtigungfuer2 ,
Eigentuemer2
)
VALUES ( @zeile ,
@fnr ,
@fbe ,
'' ,
'' ,
'' ,
'' ,
'' ,
'' ,
@funktionsnummer1 ,
@Funktionsbezeichnung1 ,
@Plattform1 ,
@Verwaltungmit1 ,
@Verwaltungdurch1 ,
@BerechtigungIn1 ,
@Berechtigungfuer1 ,
@Eigentuemer1
)
END
ELSE
BEGIN
UPDATE @t3
SET Funktionsnummer2 = @funktionsnummer1 ,
Funktionsbezeichnung2 = @Funktionsbezeichnung1 ,
Plattform2 = @plattform1 ,
Verwaltungmit2 = @verwaltungmit1 ,
Verwaltungdurch2 = @verwaltungdurch1 ,
BerechtigungIn2 = @berechtigungin1 ,
Berechtigungfuer2 = @berechtigungfuer1 ,
Eigentuemer2 = @eigentuemer1
WHERE zeile = @zeile
END
SET @zeile = @zeile + 10
FETCH NEXT FROM xc INTO @plattform1, @verwaltungmit1,
@verwaltungdurch1, @berechtigungin1, @berechtigungfuer1,
@eigentuemer1, @SORT1, @funktionsnummer1,
@funktionsbezeichnung1
END
CLOSE xc
DEALLOCATE xc
SELECT *
FROM @t3
DROP TABLE #tmp1
DROP TABLE #tmp2
RETURN
differenz:
SELECT plattform ,
verwaltungmit ,
verwaltungdurch ,
berechtigungIn ,
berechtigungfuer ,
eigentuemer
INTO #tmp11
FROM @t1
EXCEPT
SELECT plattform ,
verwaltungmit ,
verwaltungdurch ,
berechtigungIn ,
berechtigungfuer ,
eigentuemer
FROM @t2
SELECT plattform ,
verwaltungmit ,
verwaltungdurch ,
berechtigungIn ,
berechtigungfuer ,
eigentuemer
INTO #tmp21
FROM @t2
EXCEPT
SELECT plattform ,
verwaltungmit ,
verwaltungdurch ,
berechtigungIn ,
berechtigungfuer ,
eigentuemer
FROM @t1
ALTER TABLE #tmp11 ADD Funktionsnummer VARCHAR(255)
ALTER TABLE #tmp11 ADD Funktionsbezeichnung VARCHAR(255)
ALTER TABLE #tmp21 ADD Funktionsnummer VARCHAR(255)
ALTER TABLE #tmp21 ADD Funktionsbezeichnung VARCHAR(255)
SELECT @fnr = funktionsnummer
FROM @t1
SELECT @fbe = funktionsbezeichnung
FROM @t1
UPDATE #tmp11
SET Funktionsnummer = @fnr
UPDATE #tmp11
SET funktionsbezeichnung = @fbe
SELECT @fnr = funktionsnummer
FROM @t2
SELECT @fbe = funktionsbezeichnung
FROM @t2
UPDATE #tmp21
SET Funktionsnummer = @fnr
UPDATE #tmp21
SET funktionsbezeichnung = @fbe
SET @zeile = 1
SELECT @fnr = funktionsnummer
FROM @t2
SELECT @fbe = funktionsbezeichnung
FROM @t2
DECLARE xc CURSOR
FOR
SELECT *
FROM #tmp11
OPEN xc
FETCH NEXT FROM xc INTO @plattform1, @verwaltungmit1,
@verwaltungdurch1, @berechtigungin1, @berechtigungfuer1,
@eigentuemer1, @funktionsnummer1, @funktionsbezeichnung1
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT @t3
( Zeile ,
Funktionsnummer1 ,
Funktionsbezeichnung1 ,
Plattform1 ,
Verwaltungmit1 ,
Verwaltungdurch1 ,
BerechtigungIn1 ,
Berechtigungfuer1 ,
Eigentuemer1 ,
Funktionsnummer2 ,
Funktionsbezeichnung2 ,
Plattform2 ,
Verwaltungmit2 ,
Verwaltungdurch2 ,
BerechtigungIn2 ,
Berechtigungfuer2 ,
Eigentuemer2
)
VALUES ( @zeile ,
@funktionsnummer1 ,
@Funktionsbezeichnung1 ,
@Plattform1 ,
@Verwaltungmit1 ,
@Verwaltungdurch1 ,
@BerechtigungIn1 ,
@Berechtigungfuer1 ,
@Eigentuemer1 ,
@fnr ,
@fbe ,
'' ,
'' ,
'' ,
'' ,
'' ,
''
)
SET @zeile = @zeile + 1
FETCH NEXT FROM xc INTO @plattform1, @verwaltungmit1,
@verwaltungdurch1, @berechtigungin1, @berechtigungfuer1,
@eigentuemer1, @funktionsnummer1, @funktionsbezeichnung1
END
CLOSE xc
DEALLOCATE xc
SELECT @fnr = funktionsnummer
FROM @t1
SELECT @fbe = funktionsbezeichnung
FROM @t1
DECLARE xc CURSOR
FOR
SELECT *
FROM #tmp21
OPEN xc
FETCH NEXT FROM xc INTO @plattform1, @verwaltungmit1,
@verwaltungdurch1, @berechtigungin1, @berechtigungfuer1,
@eigentuemer1, @funktionsnummer1, @funktionsbezeichnung1
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT @t3
( Zeile ,
Funktionsnummer1 ,
Funktionsbezeichnung1 ,
Plattform1 ,
Verwaltungmit1 ,
Verwaltungdurch1 ,
BerechtigungIn1 ,
Berechtigungfuer1 ,
Eigentuemer1 ,
Funktionsnummer2 ,
Funktionsbezeichnung2 ,
Plattform2 ,
Verwaltungmit2 ,
Verwaltungdurch2 ,
BerechtigungIn2 ,
Berechtigungfuer2 ,
Eigentuemer2
)
VALUES ( @zeile ,
@fnr ,
@fbe ,
'' ,
'' ,
'' ,
'' ,
'' ,
'' ,
@funktionsnummer1 ,
@Funktionsbezeichnung1 ,
@Plattform1 ,
@Verwaltungmit1 ,
@Verwaltungdurch1 ,
@BerechtigungIn1 ,
@Berechtigungfuer1 ,
@Eigentuemer1
)
SET @zeile = @zeile + 1
FETCH NEXT FROM xc INTO @plattform1, @verwaltungmit1,
@verwaltungdurch1, @berechtigungin1, @berechtigungfuer1,
@eigentuemer1, @funktionsnummer1, @funktionsbezeichnung1
END
CLOSE xc
DEALLOCATE xc
SELECT *
FROM @t3
--INSERT
--SELECT Funktionsnummer,
-- Funktionsbezeichnung,
-- Plattform,
-- verwaltungmit AS Verwaltung_Mit,
-- verwaltungdurch AS Verwaltung_Durch,
-- berechtigungIn AS Berechtigung_in,
-- berechtigungfuer AS Berechtigung_Fuer,
-- eigentuemer AS Eigentuemer
--FROM #tmp1 UNION ALL
--SELECT
--Funktionsnummer,
-- Funktionsbezeichnung,
-- Plattform,
-- verwaltungmit AS Verwaltung_Mit,
-- verwaltungdurch AS Verwaltung_Durch,
-- berechtigungIn AS Berechtigung_in,
-- berechtigungfuer AS Berechtigung_Fuer,
-- eigentuemer AS Eigentuemer
-- FROM #tmp2
DROP TABLE #tmp11
DROP TABLE #tmp21
--DECLARE xc
END
GO
USE [BEA]
GO
/****** Object: StoredProcedure [dbo].[mig1] Script Date: 15.12.2013 09:13:36 ******/
DROP PROCEDURE [dbo].[mig1]
GO
/****** Object: StoredProcedure [dbo].[mig1] Script Date: 15.12.2013 09:13:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>F
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[mig1]
AS
BEGIN
SET NOCOUNT ON;
UPDATE dbo.BAA_SHU_Extrakt_Beziehungen SET typ='Plattformen' WHERE bezeichnung LIKE 'asc %' AND typnr=-35
UPDATE dbo.BAA_SHU_Extrakt_Beziehungen SET parent_typ='Plattformen' WHERE parent_bezeichnung LIKE 'asc %' AND typnr=-11
DELETE FROM dbo.BAA_SHU_Extrakt_Beziehungen WHERE typnr=51
TRUNCATE TABLE berechtigung
TRUNCATE TABLE Berechtigung_Plattform
TRUNCATE TABLE Berechtigung_Server
TRUNCATE TABLE Funktionstelle_Plattform
TRUNCATE TABLE Funktionstelle_Server
TRUNCATE TABLE Personal_Berechtigung
TRUNCATE TABLE Personal_Server
TRUNCATE TABLE Plattform_Berechtigung
TRUNCATE TABLE Plattform_Server
TRUNCATE TABLE Verwaltung_durch
TRUNCATE TABLE Verwaltung_durch_Berechtigung
TRUNCATE TABLE Verwaltung_durch_Plattform
TRUNCATE TABLE Verwaltung_durch_Server
TRUNCATE TABLE Server
TRUNCATE TABLE funktionstelle
TRUNCATE TABLE personal
TRUNCATE TABLE personal_FunktionStelle
TRUNCATE TABLE Plattform
TRUNCATE TABLE Funktionstelle_Berechtigung
TRUNCATE TABLE Personal_Plattform
TRUNCATE TABLE Verwaltung_mit
TRUNCATE TABLE Verwaltung_mit_Plattform
TRUNCATE TABLE Verwaltung_mit_Berechtigung
TRUNCATE TABLE Verwaltung_mit_Server
TRUNCATE TABLE Verwaltung_mit_FunktionStelle
INSERT Berechtigung ( Berechtigungnr, ParentID, Bezeichnung, Beschreibung, Sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer )
VALUES ( -1, 0, 'Berechtigung', '', 0, 1, GETDATE(), GETDATE(), 1 )
INSERT Funktionstelle ( FunktionstelleNr, ParentID, Bezeichnung, Beschreibung, sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer )
VALUES ( -2, 0, 'Organisation', '', 0, 1, GETDATE(), GETDATE(), 1 )
INSERT Personal ( Personalnr, ParentID, Bezeichnung, Beschreibung, tgnummer, name, sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer )
VALUES ( -4, 0, 'Personal', '', '', '', 0, 1, GETDATE(), GETDATE(), 1 )
INSERT Plattform ( Plattformnr, ParentID, Bezeichnung, Beschreibung, Sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer )
VALUES ( -5, 0, 'Plattform', '', 0, 1, GETDATE(), GETDATE(), 1 )
INSERT Server ( Servernr, ParentID, Bezeichnung, Beschreibung, Sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer )
VALUES ( -6, 0, 'Server', '', 0, 1, GETDATE(), GETDATE(), 1 )
INSERT Verwaltung_durch ( Verwaltung_durchnr, ParentID, Bezeichnung, Beschreibung, Sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer )
VALUES ( -7, 0, 'Verwaltung durch', '', 0, 1, GETDATE(), GETDATE(), 1 )
DECLARE @parent INT
DECLARE @parent_bezeichnung VARCHAR(255)
DECLARE @parent_typ VARCHAR(255)
DECLARE @sequenz INT
DECLARE @id INT
DECLARE @bezeichnung VARCHAR(255)
DECLARE @typ VARCHAR(255)
DECLARE @rc INT
DECLARE @level INT
DECLARE @typnr INT
DECLARE @typbez VARCHAR(255)
DECLARE xc CURSOR FOR
SELECT DISTINCT parent, parent_bezeichnung, parent_typ, 0 AS Sequenz FROM dbo.BAA_SHU_Extrakt_Beziehungen
WHERE TypNr=-1 AND parent NOT IN (SELECT id FROM dbo.BAA_SHU_Extrakt_Beziehungen WHERE typnr=-1)
OPEN xc
FETCH NEXT FROM xc INTO @parent, @parent_bezeichnung, @parent_typ,@sequenz
WHILE @@FETCH_STATUS =0 BEGIN
IF @parent_typ='Organisation' BEGIN
INSERT dbo.Funktionstelle
( FunktionstelleNr, ParentID, Bezeichnung, Beschreibung, Funktionsnummer, Funktionsstelle, Sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer )
VALUES (@parent, -2, @parent_bezeichnung,'', '','',@sequenz,1,GETDATE(),GETDATE(),1)
EXEC update_merkmap 'Funktionstelle',@parent
end
IF @parent_typ='Plattformen' BEGIN
INSERT dbo.Plattform
( PlattformNr, ParentID, Bezeichnung, Beschreibung, Sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer )
VALUES ( @parent,-5,@parent_bezeichnung,'',@sequenz,1,GETDATE(),GETDATE(),1)
EXEC update_merkmap 'Plattform',@parent
end
IF @parent_typ='Verwaltung `DURCH`' BEGIN
INSERT dbo.Verwaltung_durch
( Verwaltung_durchNr, ParentID, Bezeichnung, Beschreibung, Sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer )
VALUES ( @parent,-7,@parent_bezeichnung,'',@sequenz,1,GETDATE(),GETDATE(),1)
EXEC update_merkmap 'Verwaltung_Durch',@parent
end
IF @parent_typ='Berechtigungen' begin
insert dbo.Berechtigung
( BerechtigungNr, ParentID, Bezeichnung, Beschreibung, Sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer )
VALUES ( @parent,-1,@parent_bezeichnung,'',@sequenz,1,GETDATE(),GETDATE(),1)
EXEC update_merkmap 'Berechtigung',@parent
end
IF @parent_typ='Personal' BEGIN
INSERT dbo.Personal
( Personalnr, ParentID, Bezeichnung, Beschreibung, Sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer,tgnummer,name )
VALUES ( @parent,-4,@parent_bezeichnung,'',@sequenz,1,GETDATE(),GETDATE(),1,'',@parent_bezeichnung)
EXEC update_merkmap 'Personal',@parent
end
IF @parent_typ='Server' BEGIN
INSERT dbo.Server
( Servernr, ParentID, Bezeichnung, Beschreibung, Sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer )
VALUES ( @parent,-6,@parent_bezeichnung,'',@sequenz,1,GETDATE(),GETDATE(),1)
EXEC update_merkmap 'Server',@parent
end
FETCH NEXT FROM xc INTO @parent, @parent_bezeichnung, @parent_typ,@sequenz
END
CLOSE xc
DEALLOCATE xc
DECLARE xc CURSOR FOR
SELECT DISTINCT parent, parent_bezeichnung, parent_typ, 0 AS Sequenz FROM dbo.BAA_SHU_Extrakt_Beziehungen
WHERE parent NOT IN (SELECT id FROM dbo.BAA_SHU_Extrakt_Beziehungen)
OPEN xc
FETCH NEXT FROM xc INTO @parent, @parent_bezeichnung, @parent_typ,@sequenz
WHILE @@FETCH_STATUS =0 BEGIN
IF @parent_typ='Organisation' BEGIN
INSERT dbo.Funktionstelle
( FunktionstelleNr, ParentID, Bezeichnung, Beschreibung, Funktionsnummer, Funktionsstelle, Sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer )
VALUES (@parent, -2, @parent_bezeichnung,'', '','',@sequenz,1,GETDATE(),GETDATE(),1)
EXEC update_merkmap 'Funktionstelle',@parent
end
IF @parent_typ='Plattformen' BEGIN
INSERT dbo.Plattform
( PlattformNr, ParentID, Bezeichnung, Beschreibung, Sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer )
VALUES ( @parent,-5,@parent_bezeichnung,'',@sequenz,1,GETDATE(),GETDATE(),1)
EXEC update_merkmap 'Plattform',@parent
end
IF @parent_typ='Verwaltung `DURCH`' BEGIN
INSERT dbo.Verwaltung_durch
( Verwaltung_durchNr, ParentID, Bezeichnung, Beschreibung, Sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer )
VALUES ( @parent,-7,@parent_bezeichnung,'',@sequenz,1,GETDATE(),GETDATE(),1)
EXEC update_merkmap 'Verwaltung_Durch',@parent
end
IF @parent_typ='Berechtigungen' begin
insert dbo.Berechtigung
( BerechtigungNr, ParentID, Bezeichnung, Beschreibung, Sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer )
VALUES ( @parent,-1,@parent_bezeichnung,'',@sequenz,1,GETDATE(),GETDATE(),1)
EXEC update_merkmap 'Berechtigung',@parent
end
IF @parent_typ='Personal' BEGIN
INSERT dbo.Personal
( Personalnr, ParentID, Bezeichnung, Beschreibung, Sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer,tgnummer,name )
VALUES ( @parent,-4,@parent_bezeichnung,'',@sequenz,1,GETDATE(),GETDATE(),1,'',@parent_bezeichnung)
EXEC update_merkmap 'Personal',@parent
end
IF @parent_typ='Server' BEGIN
INSERT dbo.Server
( Servernr, ParentID, Bezeichnung, Beschreibung, Sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer )
VALUES ( @parent,-6,@parent_bezeichnung,'',@sequenz,1,GETDATE(),GETDATE(),1)
EXEC update_merkmap 'Server',@parent
end
IF @parent_typ='Verwaltung `MIT`' BEGIN
INSERT dbo.Verwaltung_mit
( Verwaltung_MitNr, ParentID, Bezeichnung, Beschreibung, Sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer )
VALUES ( @parent,-8,@parent_bezeichnung,'',@sequenz,1,GETDATE(),GETDATE(),1)
EXEC update_merkmap 'Verwaltung_Mit',@parent
end
FETCH NEXT FROM xc INTO @parent, @parent_bezeichnung, @parent_typ,@sequenz
END
CLOSE xc
DEALLOCATE xc
DECLARE @tmp1 TABLE
(
[Parent] [int] NULL,
[Parent_Bezeichnung] [nvarchar](50) NULL,
[Parent_Typ] [nvarchar](50) NULL,
[Sequenz] [int] NULL,
[ID] [int] NULL,
[Bezeichnung] [nvarchar](50) NULL,
[Typ] [nvarchar](50) NULL,
[TypNr] [int] NULL,
[Typ_Bezeichung] [nvarchar](50) NULL,
LEVEL INT
)
DECLARE @tabletyp VARCHAR(255)
DECLARE xc cursor FOR
SELECT DISTINCT id FROM dbo.BAA_SHU_Extrakt_Beziehungen WHERE typnr=-1
OPEN xc
FETCH NEXT FROM xc INTO @id
WHILE @@FETCH_STATUS=0 BEGIN
IF @id=165 BEGIN
PRINT 'a'
end
DELETE FROM @tmp1
INSERT @tmp1 SELECT * FROM dbo.fnkt_get_mig_hierarchie(@id)
SELECT @rc = COUNT(*) FROM @tmp1
IF @rc>0 BEGIN
DECLARE @tabletype VARCHAR(255)
SET @tabletype=''
SELECT TOP 1 @tabletyp=parent_typ FROM @tmp1 ORDER BY level DESC
DECLARE xx CURSOR FOR
SELECT * FROM @tmp1 ORDER BY level DESC
OPEN xx
FETCH NEXT FROM xx INTO @parent, @parent_bezeichnung, @parent_typ, @sequenz, @id, @bezeichnung, @typ, @typnr, @typbez, @level
WHILE @@FETCH_STATUS = 0 BEGIN
IF @id=165 BEGIN
PRINT 'n'
end
IF @tabletyp='Organisation' BEGIN
SELECT @rc=COUNT(*) FROM dbo.Funktionstelle WHERE funktionstellenr=@id
IF @rc=0 insert dbo.Funktionstelle
( FunktionstelleNr, ParentID, Bezeichnung, Beschreibung, Funktionsnummer, Funktionsstelle, Sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer )
VALUES (@id, @parent, @bezeichnung,'', '','',@sequenz,1,GETDATE(),GETDATE(),1)
EXEC update_merkmap 'Funktionstelle',@id
end
IF @tabletyp='Plattformen' BEGIN
SELECT @rc=COUNT(*) FROM dbo.Plattform WHERE plattformnr=@id
IF @rc=0 INSERT dbo.Plattform
( PlattformNr, ParentID, Bezeichnung, Beschreibung, Sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer )
VALUES ( @id, @parent,@bezeichnung,'',@sequenz,1,GETDATE(),GETDATE(),1)
EXEC update_merkmap 'Plattform',@id
end
IF @tabletyp='Verwaltung `DURCH`' BEGIN
SELECT @rc=COUNT(*) FROM dbo.Verwaltung_durch WHERE Verwaltung_durchNr=@id
IF @rc=0 INSERT dbo.Verwaltung_durch
( Verwaltung_durchNr, ParentID, Bezeichnung, Beschreibung, Sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer )
VALUES ( @id, @parent,@bezeichnung,'',@sequenz,1,GETDATE(),GETDATE(),1)
EXEC update_merkmap 'Verwaltung_Durch',@id
END
IF @tabletyp='Berechtigungen' BEGIN
SELECT @rc=COUNT(*) FROM dbo.Berechtigung WHERE BerechtigungNr=@id
IF @rc=0 INSERT dbo.Berechtigung
( BerechtigungNr, ParentID, Bezeichnung, Beschreibung, Sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer )
VALUES ( @id, @parent,@bezeichnung,'',@sequenz,1,GETDATE(),GETDATE(),1)
EXEC update_merkmap 'Berechtigung',@id
end
IF @tabletyp='Personal' BEGIN
SELECT @rc=COUNT(*) FROM dbo.Personal WHERE Personalnr=@id
IF @rc=0 INSERT dbo.Personal
( Personalnr, ParentID, Bezeichnung, Beschreibung, Sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer, TGNummer, name )
VALUES ( @id, @parent,@bezeichnung,'',@sequenz,1,GETDATE(),GETDATE(),1,@bezeichnung,'')
EXEC update_merkmap 'Personal',@id
end
IF @tabletyp='Server' BEGIN
SELECT @rc=COUNT(*) FROM dbo.Server WHERE Servernr=@id
IF @rc=0 INSERT dbo.Server
( Servernr, ParentID, Bezeichnung, Beschreibung, Sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer )
VALUES ( @id, @parent,@bezeichnung,'',@sequenz,1,GETDATE(),GETDATE(),1)
EXEC update_merkmap 'Server',@id
end
FETCH NEXT FROM xx INTO @parent, @parent_bezeichnung, @parent_typ, @sequenz, @id, @bezeichnung, @typ, @typnr, @typbez, @level
END
CLOSE xx
DEALLOCATE xx
end
FETCH NEXT FROM xc INTO @id
END
CLOSE xc
DEALLOCATE xc
UPDATE verwaltung_mit
SET bezeichnung = LTRIM(RTRIM(SUBSTRING(bezeichnung, 0, CHARINDEX('verw.', bezeichnung))))
INSERT Verwaltung_mit ( Verwaltung_mitNr, ParentID, Bezeichnung, Beschreibung, sequenz, Aktiv, Erstellt_am, Mutiert_am, Mutierer )
VALUES ( -8, 0, 'Verwaltung mit', '', 0, 1, GETDATE(), GETDATE(), 1 )
EXEC dbo.mig_Berechtigung_Plattform
EXEC dbo.mig_Berechtigung_Server
EXEC dbo.mig_Funktionstelle_Plattform
EXEC dbo.mig_Funktionstelle_Server
EXEC dbo.mig_Funktionstelle_Berechtigung
EXEC dbo.mig_Personal_Berechtigung
EXEC dbo.mig_personal_server
EXEC dbo.mig_plattform_berechtigung
EXEC dbo.mig_plattform_Server
EXEC dbo.mig_verwaltung_durch_berechtigung
EXEC dbo.mig_verwaltung_durch_Plattform
EXEC dbo.mig_verwaltung_durch_Server
EXEC dbo.mig_Personal_FunktionStelle
EXEC dbo.mig_Personal_Plattform
EXEC dbo.mig_verwaltung_mit_Plattform
EXEC dbo.mig_verwaltung_mit_Berechtigung
EXEC dbo.mig_verwaltung_mit_Server
EXEC dbo.mig_verwaltung_mit_FunktionStelle
INSERT berechtigung_plattform
(berechtigungnr, plattformnr, beschreibung, sequenz,aktiv,erstellt_am,mutiert_am,mutierer,beziehungstypnr)
SELECT berechtigungnr,plattformnr,beschreibung,Sequenz,aktiv,Erstellt_am,Mutiert_am,mutierer,beziehungstypnr FROM dbo.Plattform_Berechtigung
DELETE FROM dbo.Plattform_Berechtigung
update funktionstelle set bezeichnung=LTRIM(bezeichnung)
update personal set bezeichnung=LTRIM(bezeichnung)
update server set bezeichnung=LTRIM(bezeichnung)
update Verwaltung_durch set bezeichnung=LTRIM(bezeichnung)
update Verwaltung_mit set bezeichnung=LTRIM(bezeichnung)
update plattform set bezeichnung=LTRIM(bezeichnung)
UPDATE bea.dbo.Personal_Plattform SET aktiv=0 WHERE Beziehungstypnr=-30
END
GO
USE [BEA]
GO
/****** Object: Trigger [dbo].[temporaer_Berechtigung_update] Script Date: 15.12.2013 09:13:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE TRIGGER [dbo].[temporaer_Berechtigung_update] ON [dbo].[Temporaer_Berechtigung]
AFTER update
AS
BEGIN
SET NOCOUNT ON;
DECLARE @keyvalue VARCHAR(255)
DECLARE @mutierer int
DECLARE @aktivneu INT
DECLARE @aktivalt INT
DECLARE @bezeichnung VARCHAR(255)
SELECT @aktivneu=Aktiv FROM INSERTED
SELECT @keyvalue = [Personal_FunktionStelleNr] FROM inserted
SELECT @aktivalt=aktiv FROM DELETED
SELECT @mutierer=mutierer FROM inserted
IF @aktivalt=1 AND @aktivneu=0 BEGIN
EXEC sp_insert_journal 'Temporär_Berechtigung',@keyvalue, @bezeichnung,'Eintrag gelöscht', @mutierer
UPDATE dbo.Personal_FunktionStelle SET aktiv=0, mutierer=@mutierer, Mutiert_am=GETDATE() WHERE Personal_FunktionStelleNr=@keyvalue
END ELSE BEGIN
EXEC sp_insert_journal 'Temporär_Berechtigung',@keyvalue, @bezeichnung,'Eintrag geändert', @mutierer
end
end
GO
USE [BEA]
GO
/****** Object: Trigger [dbo].[Temporaer_Berechgigung_Insert] Script Date: 15.12.2013 09:13:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE TRIGGER [dbo].[Temporaer_Berechgigung_Insert]
ON [dbo].[Temporaer_Berechtigung]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @keyvalue VARCHAR(255)
DECLARE @mutierer INT
DECLARE @bezeichnung VARCHAR(255)
SELECT @keyvalue=NrTempBerechtigung, @bezeichnung='Neue Temporäre Berechchtigung', @mutierer=mutierer FROM INSERTED
EXEC sp_insert_journal 'Temporär Berechgigung',@keyvalue, @bezeichnung, 'Neuer Eintrag', @mutierer
END
GO