-- ========================================================================================== -- Author: Telek Ákos -- Create date: 2016.05.31. -- Description: Törli az alkalmazottakat (akiknél csak az alapadatok vannak kitöltve) -- ========================================================================================== IF OBJECT_ID('sp_DeleteAlkalmazottak') IS NOT NULL BEGIN DROP PROCEDURE sp_DeleteAlkalmazottak END GO CREATE PROCEDURE sp_DeleteAlkalmazottak @xml xml AS BEGIN SET NOCOUNT ON SET XACT_ABORT ON DECLARE @alkalmazottId TABLE (id int); DECLARE @torlendoId TABLE (id int); DECLARE @inputId TABLE (id int); INSERT INTO @inputId SELECT sor.value('.', 'int') AS id FROM @xml.nodes('/Alkalmazottak/IdLista/Id') as sorok(sor) INSERT INTO @alkalmazottId (id) SELECT a.ID FROM T_ALKALMAZOTT a WHERE EXISTS (SELECT 1 FROM @inputId WHERE id = a.ID) AND NOT EXISTS (SELECT 1 FROM T_CSOPORT WHERE C_CSOPORTVEZETOID = a.ID) AND NOT EXISTS (SELECT 1 FROM T_ESZKOZ WHERE C_FELELOSID = a.ID) AND NOT EXISTS (SELECT 1 FROM T_FALIUJSAGBEJEGYZES WHERE C_BEJEGYZOID = a.ID) AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZASOK_TANAROK WHERE C_TANAROKID = a.ID) AND NOT EXISTS (SELECT 1 FROM T_HELYETTESITESIIDOSZAK WHERE C_HELYETTESTANAROKID = a.ID) AND NOT EXISTS (SELECT 1 FROM T_IGAZOLAS WHERE C_ROGZITOID = a.ID) AND NOT EXISTS (SELECT 1 FROM T_JOGYAKORLAT WHERE C_JOGYAKORLATTULAJDONOSID = a.ID) AND NOT EXISTS (SELECT 1 FROM T_NAPLOELLENORZES WHERE C_ELLENORZOSZEMELYID = a.ID) AND NOT EXISTS (SELECT 1 FROM T_ORAK_TANAROK WHERE C_TANAROKID = a.ID) AND NOT EXISTS (SELECT 1 FROM T_ORALATOGATAS WHERE C_ERTEKELOID = a.ID) AND NOT EXISTS (SELECT 1 FROM T_OSZTALY WHERE C_OFOHELYETTESID = a.ID OR C_OSZTALYFONOKID = a.ID) AND NOT EXISTS (SELECT 1 FROM T_TANARITANTARGY WHERE C_ALKALMAZOTTID = a.ID) AND NOT EXISTS (SELECT 1 FROM T_TANARTARGYATLAG WHERE C_TANARIATLAGOKID = a.ID) AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA WHERE C_HELYETTESITOTANARID = a.ID) AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA WHERE C_ORATULAJDONOSID = a.ID) AND NOT EXISTS (SELECT 1 FROM T_TANMENET WHERE C_FELTOLTOID = a.ID) AND NOT EXISTS (SELECT 1 FROM T_TANULOERTEKELES WHERE C_ERTEKELOID = a.ID) AND NOT EXISTS (SELECT 1 FROM T_TANULOESEMENY WHERE C_FELJEGYZOID = a.ID) AND NOT EXISTS (SELECT 1 FROM T_TANULOKOZOSSEGISZOLGALAT WHERE C_FELJEGYZOID = a.ID) AND NOT EXISTS (SELECT 1 FROM T_TEREM WHERE C_TEREMFELELOSID = a.ID) AND NOT EXISTS (SELECT 1 FROM T_TEVEKENYSEG WHERE C_ESEMENYTULAJDONOSID = a.ID) INSERT INTO @torlendoId (id) SELECT ID FROM T_FELHASZNALO f WHERE EXISTS (SELECT 1 FROM @alkalmazottId WHERE id = f.ID) AND NOT EXISTS (SELECT 1 FROM T_CIMTARCSOPORT WHERE C_TULAJDONOSID = f.ID) AND NOT EXISTS (SELECT 1 FROM T_CIMZETT_FALIUJSAGBEJEGYZES WHERE C_CIMZETTID = f.ID) AND NOT EXISTS (SELECT 1 FROM T_CSATOLTFELHASZNALOK_CSATOLTJ WHERE C_CSATOLTFELHASZNALOKID = f.ID) AND NOT EXISTS (SELECT 1 FROM T_DIGESTMESSAGEQUEUE WHERE C_RECIPIENTID = f.ID) AND NOT EXISTS (SELECT 1 FROM T_EMAILADATOK WHERE C_EMAILCIMZETTID = f.ID OR C_KULDOID = f.ID) AND NOT EXISTS (SELECT 1 FROM T_FELHASZNALOBELEPESTORTENET WHERE C_FELHASZNALOID = f.ID) AND NOT EXISTS (SELECT 1 FROM T_FELHASZNALOERTESITES WHERE C_FELHASZNALOID = f.ID) AND NOT EXISTS (SELECT 1 FROM T_FELHASZNALOERTESITESBEALLITA WHERE C_FELHASZNALOID = f.ID) AND NOT EXISTS (SELECT 1 FROM T_IKTATOTTDOKUMENTUMOK WHERE C_DOKUMENTUMPARTNEREID = f.ID OR C_FELTOLTOFELHASZNALOID = f.ID) AND NOT EXISTS (SELECT 1 FROM T_IMPOSITION WHERE C_BEFIZETESREKOTELEZETTFELHASZ = f.ID OR C_LETREHOZOID = f.ID) AND NOT EXISTS (SELECT 1 FROM T_JOGOSULTFELHASZNALOK_HOZZARE WHERE C_JOGOSULTFELHASZNALOKID = f.ID) AND NOT EXISTS (SELECT 1 FROM T_JOGOSULTSAG_FELHASZNALO WHERE C_FELHASZNALOID = f.ID) AND NOT EXISTS (SELECT 1 FROM T_MESSAGE WHERE C_SENDERID = f.ID) AND NOT EXISTS (SELECT 1 FROM T_OLDALLATOGATOTTSAG WHERE C_FELHASZNALOID = f.ID) AND NOT EXISTS (SELECT 1 FROM T_ONLINEUSER WHERE C_FELHASZNALOID = f.ID) AND NOT EXISTS (SELECT 1 FROM T_PEDAGOGUSELETPALYAMODELL WHERE C_TANARID = f.ID) AND NOT EXISTS (SELECT 1 FROM T_PERSONMESSAGE WHERE C_RECIPIENTID = f.ID) AND NOT EXISTS (SELECT 1 FROM T_RESZTVEVOK_TEVEKENYSEGEK WHERE C_RESZTVEVOKID = f.ID) AND NOT EXISTS (SELECT 1 FROM T_SMS WHERE C_FELHASZNALOID = f.ID) AND NOT EXISTS (SELECT 1 FROM T_TRANSACTION WHERE C_BEFIZETOID = f.ID) AND NOT EXISTS (SELECT 1 FROM T_USERNOTIFICATION WHERE C_FELHASZNALOID = f.ID) AND NOT EXISTS (SELECT 1 FROM T_USERPROFILE WHERE C_FELHASZNALOID = f.ID) BEGIN TRY BEGIN TRANSACTION DELETE FROM T_FELHASZNALO_SZEREPKOR WHERE C_FELHASZNALOID IN (SELECT ID FROM @torlendoId) DELETE FROM T_FELHASZNALOBELEPES WHERE C_FELHASZNALOID IN (SELECT ID FROM @torlendoId) DELETE FROM T_EMAIL WHERE C_FELHASZNALOID IN (SELECT ID FROM @torlendoId) DELETE FROM T_CIM WHERE C_FELHASZNALOID IN (SELECT ID FROM @torlendoId) DELETE FROM T_TELEFON WHERE C_FELHASZNALOID IN (SELECT ID FROM @torlendoId) DELETE FROM T_MUNKAUGYIADATOK WHERE C_ALKALMAZOTTID IN (SELECT ID FROM @torlendoId) DELETE FROM T_CIMTAR WHERE C_TAGOKID IN (SELECT ID FROM @torlendoId) DELETE FROM T_ALKALMAZOTT WHERE ID IN (SELECT ID FROM @torlendoId) DELETE FROM T_FELHASZNALO WHERE ID IN (SELECT ID FROM @torlendoId) select count(1) from @torlendoId COMMIT TRANSACTION END TRY BEGIN CATCH IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0 ROLLBACK TRAN; THROW --RETHROW the ERROR END CATCH END GO