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: -- Create date: -- 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: F -- Create date: -- 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: -- Create date: -- 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: -- Create date: -- 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