DROP PROCEDURE IF EXISTS [dbo].[sp_KIRImportTanulok] GO CREATE PROCEDURE [dbo].[sp_KIRImportTanulok] @TanulokXML as XML, @intezmenyID int, @tanevID int, @userId int AS BEGIN SET NOCOUNT ON; DECLARE @userNameGenerateMode int DECLARE @linkTable TABLE ( tempId int, insertedId int, act varchar(10) ) -- XML paraméter értelmezése SELECT ID = Tanulo.value('(ID)[1]', 'int'), OktatasiAzonosito = Tanulo.value('(OktatasiAzonosito)[1]', 'nvarchar(20)'), VezetekNev = Tanulo.value('(ViseltNevVezetekNev)[1]', 'nvarchar(255)'), UtoNev = Tanulo.value('(ViseltNevKeresztNev)[1]', 'nvarchar(255)'), Elotag = Tanulo.value('(ViseltNevElotag)[1]', 'nvarchar(20)'), NevSorrend = Tanulo.value('(ViseltNevNevSorrend)[1]', 'char(1)'), SzuletesiNeveElotag = Tanulo.value('(SzuletesiNevElotag)[1]', 'nvarchar(20)'), SzuletesiNeve = Tanulo.value('(SzuletesiNeve)[1]', 'nvarchar(64)'), SzuletesiNevVezetekNev = Tanulo.value('(SzuletesiNevVezetekNev)[1]', 'nvarchar(255)'), SzuletesiNevKeresztNev = Tanulo.value('(SzuletesiNevKeresztNev)[1]', 'nvarchar(255)'), SzuletesiNevNevSorrend = Tanulo.value('(SzuletesiNevNevSorrend)[1]', 'char(1)'), AnyjaNeveElotag = Tanulo.value('(AnyjaNeveElotag)[1]', 'nvarchar(20)'), AnyjaNeve = Tanulo.value('(AnyjaNeve)[1]', 'nvarchar(64)'), AnyjaNeveVezetekNev = Tanulo.value('(AnyjaNeveVezetekNev)[1]', 'nvarchar(255)'), AnyjaNeveKeresztNev = Tanulo.value('(AnyjaNeveKeresztNev)[1]', 'nvarchar(255)'), AnyjaNeveNevSorrend = Tanulo.value('(AnyjaNeveNevSorrend)[1]', 'char(1)'), SzuletesiDatum = Tanulo.value('(SzuletesiDatum)[1]', 'datetime'), SzuletesiHely = Tanulo.value('(SzuletesiHely)[1]', 'nvarchar(50)'), SzuletesiOrszag = Tanulo.value('(SzuletesiOrszag)[1]', 'int'), Allampolgarsag = Tanulo.value('(Allampolgarsag)[1]', 'int'), Allampolgarsag2 = Tanulo.value('(Allampolgarsag2)[1][not(@xsi:nil = "true")]', 'int'), Nem = Tanulo.value('(Nem)[1]', 'int'), TAJSzam = Tanulo.value('(TAJSzam)[1]', 'nvarchar(9)'), AllandoLakcimIranyitoSzam = Tanulo.value('(AllandoLakcimIranyitoSzam)[1]', 'nvarchar(20)'), AllandoLakcimTelepules = Tanulo.value('(AllandoLakcimTelepules)[1]', 'nvarchar(50)'), AllandoLakcimKozteruletNev = Tanulo.value('(AllandoLakcimKozteruletNev)[1]', 'nvarchar(40)'), AllandoLakcimKozteruletJellegNev = Tanulo.value('(AllandoLakcimKozteruletJellegNev)[1]', 'nvarchar(50)'), AllandoLakcimHazszam = Tanulo.value('(AllandoLakcimHazszam)[1]', 'nvarchar(30)'), AllandoLakcimPontositas = Tanulo.value('(AllandoLakcimPontositas)[1]', 'nvarchar(40)'), TartozkodasiCimTelepules = Tanulo.value('(TartozkodasiCimTelepules)[1]', 'nvarchar(50)'), TartozkodasiCimKozteruletNev = Tanulo.value('(TartozkodasiCimKozteruletNev)[1]', 'nvarchar(40)'), TartozkodasiCimKozteruletJellegNev = Tanulo.value('(TartozkodasiCimKozteruletJellegNev)[1]', 'nvarchar(50)'), TartozkodasiCimHazszam = Tanulo.value('(TartozkodasiCimHazszam)[1]', 'nvarchar(30)'), TartozkodasiCimIranyitoszam = Tanulo.value('(TartozkodasiCimIranyitoSzam)[1]', 'nvarchar(20)'), TartozkodasiCimPontositas = Tanulo.value('(TartozkodasiCimPontositas)[1]', 'nvarchar(40)'), TankotelezettsegVege = Tanulo.value('(TankotelezettsegVege)[1]', 'datetime'), TankotelezettsegetTeljesito = Tanulo.value('(TankotelezettsegetTeljesito)[1]', 'char(1)'), SajatosNevelesIgenyu = Tanulo.value('(SajatosNevelesIgenyu)[1]', 'char(1)'), BeilleszkedesselKuzd = Tanulo.value('(BeilleszkedesselKuzd)[1]', 'char(1)'), OMAzonosito = Tanulo.value('(OMAzonosito)[1]', 'nvarchar(20)'), JogviszonyStatusza = Tanulo.value('(JogviszonyStatusza)[1]', 'char(1)'), JogviszonyKezdete = Tanulo.value('(JogviszonyKezdete)[1]', 'datetime'), JogviszonyVarBefejezese = Tanulo.value('(JogviszonyVarBefejezese)[1]', 'datetime'), JogviszonyJellege = Tanulo.value('(JogviszonyJellege)[1]', 'nvarchar(2000)'), Vendegtanulo = Tanulo.value('(Vendegtanulo)[1]', 'char(1)'), Magantanulo = Tanulo.value('(Magantanulo)[1]', 'char(1)'), Osztaly = Tanulo.value('(Osztaly)[1]', 'nvarchar(255)'), KeresesiNev = Tanulo.value('(KeresesiNev)[1]', 'nvarchar(61)'), NyomtatasiNev = Tanulo.value('(NyomtatasiNev)[1]', 'nvarchar(255)'), Telefonszam = Tanulo.value('(Telefonszam)[1]', 'nvarchar(100)'), EmailCim = Tanulo.value('(Email)[1]', 'nvarchar(200)'), BejelentkezesiNev = Tanulo.value('(BejelentkezesiNev)[1]', 'nvarchar(255)'), Jelszo = Tanulo.value('(Jelszo)[1]', 'nvarchar(64)'), Salt = Tanulo.value('(Salt)[1]', 'nvarchar(64)'), BelugyMiniszteriumSzemelyiadatEsLakcimNyilvantartasavalBeazonositott = Tanulo.value('(BelugyMiniszteriumSzemelyiadatEsLakcimNyilvantartasavalBeazonositott)[1]', 'char(1)'), UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontja = Tanulo.value('(UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontja)[1]', 'datetime'), ErvenyesDiakigazolvanySzama = Tanulo.value('(ErvenyesDiakigazolvanySzama)[1]', 'nvarchar(255)'), 0 AS isTanulo, 0 TanuloID INTO #tempTanulok FROM @TanulokXML.nodes('/KIRTanulok/ImportaltTanulok/Tanulo') as Tanulok(Tanulo) -- A létezo felhasználók ID-ját kitöltjük, és az isTanulot is update-eljük UPDATE t SET t.TanuloID = fh.ID, t.isTanulo = 1 FROM #tempTanulok t INNER JOIN T_FELHASZNALO_OSSZES fh ON ((t.NevSorrend = fh.C_NEVSORREND AND t.VezetekNev = fh.C_VEZETEKNEV AND t.UtoNev = fh.C_UTONEV) OR (t.VezetekNev = fh.C_UTONEV AND t.UtoNev = fh.C_VEZETEKNEV)) AND t.Elotag = fh.C_ELOTAG AND ((t.AnyjaNeveNevSorrend = fh.C_ANYJANEVESORREND AND t.AnyjaNeveVezetekNev = fh.C_ANYJAVEZETEKNEVE AND t.AnyjaNeveKeresztNev = fh.C_ANYJAUTONEVE) OR (t.AnyjaNeveVezetekNev = fh.C_ANYJAUTONEVE AND t.AnyjaNeveKeresztNev = fh.C_ANYJAVEZETEKNEVE)) AND t.AnyjaNeveElotag = fh.C_ANYJANEVEELOTAG AND t.SzuletesiDatum = fh.C_SZULETESIDATUM AND t.SzuletesiHely = fh.C_SZULETESIHELY AND ISNULL(t.OktatasiAzonosito,'') = ISNULL(fh.C_OKTATASIAZONOSITO,'') AND EXISTS (SELECT 1 FROM T_TANULO_OSSZES tanulo WHERE tanulo.ID = fh.ID AND tanulo.C_ALTANEVID = fh.C_TANEVID AND tanulo.TOROLT = 'F') --ha letezik tanulokent akkor mindenkepp update, maskepp insert WHERE fh.TOROLT = 'F' AND fh.C_TANEVID = @tanevID AND fh.C_INTEZMENYID = @intezmenyID AND NOT EXISTS (SELECT 1 FROM T_ALKALMAZOTT_OSSZES a WHERE a.ID = fh.ID) AND EXISTS (SELECT 1 FROM T_TANULO_OSSZES tn WHERE tn.ID = fh.ID) BEGIN TRY BEGIN TRANSACTION -- FELHASZNÁLÓK INSERTJE VAGY UPDATE-JE AKA MERGE MERGE T_FELHASZNALO_OSSZES trg USING #tempTanulok src ON src.TanuloID = trg.ID AND trg.C_TANEVID = @tanevID WHEN MATCHED AND src.isTanulo = 1 THEN UPDATE SET trg.C_NEME = src.Nem, trg.C_SZULETESIDATUM = src.SzuletesiDatum, trg.C_SZULETESINEV = src.SzuletesiNeve, trg.C_ANYJANEVE = src.AnyjaNeve, trg.C_SZULETESIHELY = src.SzuletesiHely, trg.C_TAJSZAM = src.TAJSzam, trg.C_ALLAMPOLGARSAGA = src.Allampolgarsag, trg.C_ALLAMPOLGARSAGA2 = src.Allampolgarsag2, trg.C_KERESESINEV = src.KeresesiNev, trg.C_SZULETESIORSZAG = src.SzuletesiOrszag, trg.C_SZULETESINEVSORREND = src.SzuletesiNevNevSorrend, trg.C_ANYJANEVESORREND = src.AnyjaNeveNevSorrend, trg.C_ALAPERTELMEZETTLCID = 1038, trg.C_NYOMTATASINEV = src.NyomtatasiNev, trg.C_UTONEV = src.UtoNev, trg.C_VEZETEKNEV = src.VezetekNev, trg.C_ELOTAG = src.Elotag, trg.C_NEVSORREND = src.NevSorrend, trg.C_NYILVANTARTASKEZDETE = src.JogviszonyKezdete, trg.C_OMKOD = src.OMAzonosito, trg.TOROLT = 'F', trg.SERIAL = trg.SERIAL + 1, trg.LASTCHANGED = GETDATE(), trg.MODIFIER = @userId, trg.C_OKTATASIAZONOSITO = src.OktatasiAzonosito, trg.C_BELUGYALTALAZONOSITOTT = src.BelugyMiniszteriumSzemelyiadatEsLakcimNyilvantartasavalBeazonositott, trg.C_UTOLSOADATFRISSITESIDOPONTJA = src.UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontja, trg.C_ANYJAUTONEVE = src.AnyjaNeveKeresztNev, trg.C_ANYJAVEZETEKNEVE = src.AnyjaNeveVezetekNev, trg.C_SZULETESIUTONEV = src.SzuletesiNevKeresztNev, trg.C_SZULETESIVEZETEKNEV = src.SzuletesiNevVezetekNev, trg.C_ANYJANEVEELOTAG = src.AnyjaNeveElotag, trg.C_SZULETESINEVELOTAG = src.SzuletesiNeveElotag WHEN NOT MATCHED THEN INSERT ( C_NEME ,C_SZULETESIDATUM ,C_SZULETESINEV ,C_ANYJANEVE ,C_SZULETESIHELY ,C_TAJSZAM ,C_ALLAMPOLGARSAGA ,C_ALLAMPOLGARSAGA2 ,C_KERESESINEV ,C_SZULETESIORSZAG ,C_SZULETESINEVSORREND ,C_ANYJANEVESORREND ,C_ALAPERTELMEZETTLCID ,C_NYOMTATASINEV ,C_UTONEV ,C_VEZETEKNEV ,C_ELOTAG ,C_NEVSORREND ,C_NYILVANTARTASKEZDETE ,C_OKTATASIAZONOSITO ,C_OMKOD ,C_INTEZMENYID ,C_TANEVID ,MODIFIER ,CREATOR ,C_BELUGYALTALAZONOSITOTT ,C_UTOLSOADATFRISSITESIDOPONTJA ,C_MEGJEGYZES ,C_ANYJAUTONEVE ,C_ANYJAVEZETEKNEVE ,C_SZULETESIUTONEV ,C_SZULETESIVEZETEKNEV ,C_ANYJANEVEELOTAG ,C_SZULETESINEVELOTAG ) VALUES ( src.Nem ,src.SzuletesiDatum ,src.SzuletesiNeve ,src.AnyjaNeve ,src.SzuletesiHely ,src.TAJSzam ,src.Allampolgarsag ,src.Allampolgarsag2 ,src.KeresesiNev ,src.SzuletesiOrszag ,src.SzuletesiNevNevSorrend ,src.AnyjaNeveNevSorrend ,1038 ,src.NyomtatasiNev ,src.UtoNev ,src.VezetekNev ,src.Elotag ,src.NevSorrend ,src.JogviszonyKezdete ,src.OktatasiAzonosito ,src.OMAzonosito ,@intezmenyID ,@tanevID ,NULL ,@userId ,src.BelugyMiniszteriumSzemelyiadatEsLakcimNyilvantartasavalBeazonositott ,src.UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontja ,src.JogviszonyJellege ,src.AnyjaNeveKeresztNev ,src.AnyjaNeveVezetekNev ,src.SzuletesiNevKeresztNev ,src.SzuletesiNevVezetekNev ,src.AnyjaNeveElotag ,src.SzuletesiNeveElotag ) OUTPUT INSERTED.ID, src.ID, $action INTO @linkTable(insertedID, tempId, act); MERGE T_TANULO_OSSZES trg USING ( SELECT t.*, l.insertedId AS insertedID FROM #tempTanulok t INNER JOIN @linkTable l ON t.ID = l.tempID ) src ON src.TanuloID = trg.ID AND trg.C_ALTANEVID = @tanevID AND src.isTanulo = 1 WHEN MATCHED THEN UPDATE SET trg.C_TANKOTELEZETTSEGVEGE = src.TankotelezettsegVege, trg.C_TANKOTELEZETT = src.TankotelezettsegetTeljesito, trg.C_SAJATOSNEVELESU = src.SajatosNevelesIgenyu, trg.C_BTMPROBLEMAS = src.BeilleszkedesselKuzd, trg.C_JOGVISZONYVARHATOBEFEJEZESE = src.JogviszonyVarBefejezese, trg.C_VENDEG = src.Vendegtanulo, trg.C_MAGANTANULO = src.Magantanulo, trg.C_JOGVISZONYATSZUNETELTETO = src.JogviszonyStatusza, trg.C_FELVETELTANEVEID = @tanevID, trg.TOROLT = 'F', trg.SERIAL = trg.SERIAL + 1, trg.LASTCHANGED = GETDATE(), trg.MODIFIER = @userId, trg.C_DIAKIGAZOLVANYSZAM = src.ErvenyesDiakigazolvanySzama WHEN NOT MATCHED THEN INSERT ( ID ,C_TANKOTELEZETTSEGVEGE ,C_TANKOTELEZETT ,C_SAJATOSNEVELESU ,C_BTMPROBLEMAS ,C_JOGVISZONYVARHATOBEFEJEZESE ,C_VENDEG ,C_MAGANTANULO ,C_JOGVISZONYATSZUNETELTETO ,C_FELVETELTANEVEID ,C_ALINTEZMENYID ,C_ALTANEVID ,MODIFIER ,CREATOR ,C_DIAKIGAZOLVANYSZAM ) VALUES ( src.insertedID ,src.TankotelezettsegVege ,src.TankotelezettsegetTeljesito ,src.SajatosNevelesIgenyu ,src.BeilleszkedesselKuzd ,src.JogviszonyVarBefejezese ,src.Vendegtanulo ,src.Magantanulo ,src.JogviszonyStatusza ,@tanevID ,@intezmenyID ,@tanevID ,NULL ,@userId ,src.ErvenyesDiakigazolvanySzama ); -------FELHASZNALO BELEPES-------- SET @userNameGenerateMode = dbo.fnGetRendszerbeallitasEnumBool(2885, @intezmenyID, @tanevID) IF @userNameGenerateMode <> 3 BEGIN INSERT INTO [T_FELHASZNALOBELEPES_OSSZES] ( C_JELSZO ,C_BEJELENTKEZESINEV ,C_SO ,C_FELHASZNALOID ,C_INTEZMENYID ,C_TANEVID ,MODIFIER ,CREATOR ) SELECT t.Jelszo ,t.BejelentkezesiNev ,t.Salt ,fh.ID ,@intezmenyID ,@tanevID ,NULL ,@userId FROM #tempTanulok t INNER JOIN @linkTable l ON t.ID = l.tempID INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.ID = l.insertedId WHERE NOT EXISTS ( SELECT 1 FROM T_FELHASZNALOBELEPES_OSSZES belepes WHERE belepes.TOROLT = 'F' AND ((belepes.C_FELHASZNALOID = fh.ID AND belepes.C_GONDVISELOID IS NULL) OR belepes.C_BEJELENTKEZESINEV = t.BejelentkezesiNev) ) END --------FELHASZNALO SZEREPKÖR----------- DECLARE @szerepkorId int SELECT @szerepkorId = ID FROM T_SZEREPKOR_OSSZES WHERE C_SZEREPKORTIPUS = 1761 AND C_TANEVID = @tanevID INSERT INTO T_FELHASZNALO_SZEREPKOR (C_FELHASZNALOID, C_SZEREPKORID) SELECT fh.ID, @szerepkorId FROM #tempTanulok t INNER JOIN @linkTable l ON t.ID = l.tempID INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.ID = l.insertedId WHERE C_TANEVID = @tanevID AND NOT EXISTS (SELECT 1 FROM T_FELHASZNALO_SZEREPKOR fsz WHERE fsz.C_FELHASZNALOID = fh.ID AND C_SZEREPKORID = @szerepkorId ) ----- Telefonszám ----- MERGE T_TELEFON_OSSZES trg USING ( SELECT t.*, l.insertedId AS insertedID FROM #tempTanulok t INNER JOIN @linkTable l ON t.ID = l.tempID --AND C_ALAPERTELMEZETT = 'T' WHERE t.Telefonszam IS NOT NULL AND t.Telefonszam <> '' ) src ON src.TanuloID = trg.C_FELHASZNALOID AND trg.C_TANEVID = @tanevID AND src.isTanulo = 1 AND trg.C_ALAPERTELMEZETT = 'T' WHEN MATCHED THEN UPDATE SET trg.C_TELEFONSZAM = src.Telefonszam, trg.TOROLT = 'F', trg.SERIAL = trg.SERIAL + 1, trg.LASTCHANGED = GETDATE(), trg.MODIFIER = @userId WHEN NOT MATCHED THEN INSERT ( C_TELEFONTIPUSA ,C_TELEFONSZAM ,C_LEIRAS ,C_ALAPERTELMEZETT ,C_GONDVISELOID ,C_FELHASZNALOID ,C_INTEZMENYID ,C_TANEVID ,MODIFIER ,CREATOR ) VALUES ( 1019 -- C_TELEFONTIPUSA - int ,src.Telefonszam -- C_TELEFONSZAM - nvarchar(100) ,N'' -- C_LEIRAS - nvarchar(50) ,'T' -- C_ALAPERTELMEZETT - char(1) ,NULL -- C_GONDVISELOID - int ,src.insertedID -- C_FELHASZNALOID - int ,@intezmenyID -- C_INTEZMENYID - int ,@tanevID -- C_TANEVID - int ,NULL -- MODIFIER - int ,@userId -- CREATOR - int ); ----- TARTÓZKODÁSI HELY ----- MERGE T_CIM_OSSZES trg USING ( SELECT t.*, l.insertedId AS insertedID FROM #tempTanulok t INNER JOIN @linkTable l ON t.ID = l.tempID WHERE t.TartozkodasiCimIranyitoszam IS NOT NULL AND t.TartozkodasiCimIranyitoszam <> '' AND t.TartozkodasiCimTelepules IS NOT NULL AND t.TartozkodasiCimKozteruletNev IS NOT NULL AND t.TartozkodasiCimHazszam IS NOT NULL ) src ON src.TanuloID = trg.C_FELHASZNALOID AND trg.C_TANEVID = @tanevID AND src.isTanulo = 1 AND trg.C_CIMTIPUSA = 909 WHEN MATCHED THEN UPDATE SET trg.C_CIMTIPUSA = 909, trg.C_ORSZAG = 765, trg.C_IRANYITOSZAM = src.TartozkodasiCimIranyitoszam, trg.C_VAROS = src.TartozkodasiCimTelepules, trg.C_KOZTERULET = src.TartozkodasiCimKozteruletNev, trg.C_KOZTERULETJELLEGENEV = src.TartozkodasiCimKozteruletJellegNev, trg.C_HAZSZAM = src.TartozkodasiCimHazszam, trg.C_EMELET = src.TartozkodasiCimPontositas, trg.C_FELHASZNALOID = src.insertedId, trg.TOROLT = 'F', trg.SERIAL = trg.SERIAL + 1, trg.LASTCHANGED = GETDATE(), trg.MODIFIER = @userId WHEN NOT MATCHED THEN INSERT ( C_CIMTIPUSA ,C_ORSZAG ,C_IRANYITOSZAM ,C_VAROS ,C_KOZTERULET ,C_KOZTERULETJELLEGENEV ,C_HAZSZAM ,C_EMELET ,C_FELHASZNALOID ,C_INTEZMENYID ,C_TANEVID ,MODIFIER ,CREATOR ) VALUES ( 909 ,765 ,src.TartozkodasiCimIranyitoszam ,src.TartozkodasiCimTelepules ,src.TartozkodasiCimKozteruletNev ,src.TartozkodasiCimKozteruletJellegNev ,src.TartozkodasiCimHazszam ,src.TartozkodasiCimPontositas ,src.insertedID ,@intezmenyID ,@tanevID ,NULL ,@userId ); ----- TARTÓZKODÁSI HELY ----- MERGE T_CIM_OSSZES trg USING ( SELECT t.*, l.insertedId AS insertedID FROM #tempTanulok t INNER JOIN @linkTable l ON t.ID = l.tempID WHERE t.AllandoLakcimIranyitoSzam IS NOT NULL AND t.AllandoLakcimTelepules IS NOT NULL AND t.AllandoLakcimKozteruletNev IS NOT NULL AND t.AllandoLakcimHazszam IS NOT NULL ) src ON src.TanuloID = trg.C_FELHASZNALOID AND trg.C_TANEVID = @tanevID AND src.isTanulo = 1 AND trg.C_CIMTIPUSA = 907 WHEN MATCHED THEN UPDATE SET trg.C_CIMTIPUSA = 907, trg.C_ORSZAG = 765, trg.C_IRANYITOSZAM = src.AllandoLakcimIranyitoSzam, trg.C_VAROS = src.AllandoLakcimTelepules, trg.C_KOZTERULET = src.AllandoLakcimKozteruletNev, trg.C_KOZTERULETJELLEGENEV = src.AllandoLakcimKozteruletJellegNev, trg.C_HAZSZAM = src.AllandoLakcimHazszam, trg.C_EMELET = src.AllandoLakcimPontositas, trg.C_ALAPERTELMEZETT = 'T', trg.C_FELHASZNALOID = src.insertedId, trg.TOROLT = 'F', trg.SERIAL = trg.SERIAL + 1, trg.LASTCHANGED = GETDATE(), trg.MODIFIER = @userId WHEN NOT MATCHED THEN INSERT ( C_CIMTIPUSA ,C_ORSZAG ,C_IRANYITOSZAM ,C_VAROS ,C_KOZTERULET ,C_KOZTERULETJELLEGENEV ,C_HAZSZAM ,C_EMELET ,C_ALAPERTELMEZETT ,C_FELHASZNALOID ,C_INTEZMENYID ,C_TANEVID ,MODIFIER ,CREATOR ) VALUES ( 907 ,765 ,src.AllandoLakcimIranyitoSzam ,src.AllandoLakcimTelepules ,src.AllandoLakcimKozteruletNev ,src.AllandoLakcimKozteruletJellegNev ,src.AllandoLakcimHazszam ,src.AllandoLakcimPontositas ,'T' ,src.insertedID ,@intezmenyID ,@tanevID ,NULL ,@userId ); ----- E-mail cím ----- MERGE T_EMAIL_OSSZES trg USING ( SELECT #tempTanulok.*, linkTable.insertedId AS insertedID FROM #tempTanulok INNER JOIN @linkTable linkTable ON #tempTanulok.ID = linkTable.tempID --AND C_ALAPERTELMEZETT = 'T' WHERE #tempTanulok.EmailCim IS NOT NULL AND #tempTanulok.EmailCim <> '' ) src ON trg.C_FELHASZNALOID = src.TanuloID AND trg.C_TANEVID = @tanevID AND src.isTanulo = 1 AND trg.C_ALAPERTELMEZETT = 'T' WHEN MATCHED THEN UPDATE SET trg.C_EMAILCIM = src.EmailCim ,trg.TOROLT = 'F' ,trg.SERIAL = trg.SERIAL + 1 ,trg.LASTCHANGED = GETDATE() ,trg.MODIFIER = @userId WHEN NOT MATCHED THEN INSERT ( C_EMAILTIPUSA ,C_EMAILCIM ,C_ALAPERTELMEZETT ,C_GONDVISELOID ,C_FELHASZNALOID ,C_INTEZMENYID ,C_TANEVID ,MODIFIER ,CREATOR ) VALUES ( 1024 -- C_EMAILTIPUSA - int NA ,src.EmailCim -- C_EMAILCIM - nvarchar(100) ,'T' -- C_ALAPERTELMEZETT - char(1) ,NULL -- C_GONDVISELOID - int ,src.insertedID -- C_FELHASZNALOID - int ,@intezmenyID -- C_INTEZMENYID - int ,@tanevID -- C_TANEVID - int ,NULL -- MODIFIER - int ,@userId -- CREATOR - int ); COMMIT TRANSACTION END TRY BEGIN CATCH IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0 ROLLBACK TRANSACTION; THROW END CATCH END GO