---------------------------------------------------------------------------------------------------------------- --Globális Trimm/Excel import javítja ezeket már, DB-ben ragadt hibák egyszeri javítása (LTRIM/RTIM) ---------------------------------------------------------------------------------------------------------------- --Lejavítjuk a hibásan mentett tantárgy neveket, illetve a logikai hibákat sorszámozzuk WITH tantargy AS ( SELECT t.* ,LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(t.C_NEV,CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) AS FIXNEV ,LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(t.C_NEVNYOMTATVANYBAN,CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) AS FIXNEVNYOMTATVANYBAN FROM T_TANTARGY t INNER JOIN T_TANEV v ON v.ID = t.C_TANEVID AND v.TOROLT = 'F' AND v.C_AKTIV = 'T' WHERE t.TOROLT = 'F' ), sorszam AS ( SELECT * ,ROW_NUMBER() OVER(PARTITION BY C_INTEZMENYID, C_TANEVID, FIXNEV ORDER BY ID) AS SORSZAM ,COUNT(*) OVER(PARTITION BY C_INTEZMENYID, C_TANEVID, FIXNEV) AS DARAB FROM tantargy ), fix AS ( SELECT * ,CASE WHEN DARAB > 1 THEN CONCAT(FIXNEV, ' [', SORSZAM, ']') ELSE FIXNEV END AS NEV FROM sorszam ) UPDATE t SET t.C_NEV = t.NEV ,t.C_NEVNYOMTATVANYBAN = t.FIXNEVNYOMTATVANYBAN ,t.MODIFIER = 0 ,t.LASTCHANGED = GETDATE() ,t.SERIAL += 1 FROM fix t WHERE C_NEV <> NEV OR C_NEV <> FIXNEV --Lejavítjuk a hibásan mentett felhasználó neveket UPDATE f SET f.C_VEZETEKNEV = LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(f.C_VEZETEKNEV,CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) ,f.C_UTONEV = LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(f.C_UTONEV,CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) ,f.C_SZULETESIHELY = LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(f.C_SZULETESIHELY,CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) ,f.MODIFIER = 0 ,f.LASTCHANGED = GETDATE() ,f.SERIAL += 1 FROM T_FELHASZNALO_OSSZES f INNER JOIN T_TANEV_OSSZES tn ON tn.ID = f.C_TANEVID AND tn.TOROLT = 'F' AND tn.C_AKTIV = 'T' WHERE (f.C_VEZETEKNEV LIKE CONCAT('%', CHAR(9),'%') OR f.C_VEZETEKNEV LIKE ' %' OR f.C_VEZETEKNEV LIKE '% ' OR f.C_UTONEV LIKE CONCAT('%', CHAR(9),'%') OR f.C_UTONEV LIKE ' %' OR f.C_UTONEV LIKE '% ' OR f.C_SZULETESIHELY LIKE CONCAT('%', CHAR(9),'%') OR f.C_SZULETESIHELY LIKE ' %' OR f.C_SZULETESIHELY LIKE '% ') AND f.TOROLT = 'F' --Lejavítjuk a hibásan mentett osztálycsoport neveket UPDATE ocs SET ocs.C_NEV = LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(ocs.C_NEV,CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) ,ocs.MODIFIER = 0 ,ocs.LASTCHANGED = GETDATE() ,ocs.SERIAL += 1 FROM T_OSZTALYCSOPORT_OSSZES ocs INNER JOIN T_TANEV_OSSZES tn ON tn.ID = ocs.C_TANEVID AND tn.TOROLT = 'F' AND tn.C_AKTIV = 'T' WHERE (ocs.C_NEV LIKE CONCAT('%', CHAR(9),'%') OR ocs.C_NEV LIKE ' %' OR ocs.C_NEV LIKE '% ') AND ocs.TOROLT = 'F' --Lejavítjuk a hibásan mentett óraterv neveket UPDATE ot SET ot.C_NEV = LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(ot.C_NEV,CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) ,ot.MODIFIER = 0 ,ot.LASTCHANGED = GETDATE() ,ot.SERIAL += 1 FROM T_ORATERV_OSSZES ot INNER JOIN T_TANEV_OSSZES tn ON tn.ID = ot.C_TANEVID AND tn.TOROLT = 'F' AND tn.C_AKTIV = 'T' WHERE (ot.C_NEV LIKE CONCAT('%', CHAR(9),'%') OR ot.C_NEV LIKE ' %' OR ot.C_NEV LIKE '% ') AND ot.TOROLT = 'F' --Lejavítjuk a hibásan mentett terem neveket UPDATE t SET t.C_NEV = LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(t.C_NEV,CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) ,t.MODIFIER = 0 ,t.LASTCHANGED = GETDATE() ,t.SERIAL += 1 FROM T_TEREM_OSSZES t INNER JOIN T_TANEV_OSSZES tn ON tn.ID = t.C_TANEVID AND tn.TOROLT = 'F' AND tn.C_AKTIV = 'T' WHERE (t.C_NEV LIKE CONCAT('%', CHAR(9),'%') OR t.C_NEV LIKE ' %' OR t.C_NEV LIKE '% ') AND t.TOROLT = 'F' --Lejavítjuk a hibásan mentett gondviselő neveket UPDATE g SET g.C_NEV = LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(g.C_NEV,CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) ,g.MODIFIER = 0 ,g.LASTCHANGED = GETDATE() ,g.SERIAL += 1 FROM T_GONDVISELO_OSSZES g INNER JOIN T_TANEV_OSSZES tn ON tn.ID = g.C_TANEVID AND tn.TOROLT = 'F' AND tn.C_AKTIV = 'T' WHERE (g.C_NEV LIKE CONCAT('%', CHAR(9),'%') OR g.C_NEV LIKE ' %' OR g.C_NEV LIKE '% ') AND g.TOROLT = 'F' ---------------------------------------------------------------------------------------------------------------- --Hibás/Char(9)-es importnál keletkezett inkonzisztencia javítása ---------------------------------------------------------------------------------------------------------------- --Töröljük a hibásan tárolt T_ORARENDIORA_OSSZES relációkat UPDATE oo SET oo.TOROLT = 'T' ,oo.MODIFIER = 0 ,oo.LASTCHANGED = GETDATE() ,oo.SERIAL += 1 FROM T_ORARENDIORA_OSSZES oo WHERE oo.C_TANTARGYID IS NULL AND oo.C_FOGLALKOZASID IS NULL AND TOROLT = 'F' -- Újra generáljuk az órarendeket DECLARE @IntezmenyId int DECLARE @TanevId int DECLARE IntezmenyTanevCursor CURSOR FOR SELECT C_INTEZMENYID, ID FROM T_TANEV WHERE TOROLT = 'F' AND C_NEV = '2021/2022' OPEN IntezmenyTanevCursor FETCH NEXT FROM IntezmenyTanevCursor INTO @IntezmenyId, @TanevId WHILE @@FETCH_STATUS = 0 BEGIN EXEC uspGenerateOrarend @IntezmenyId, @TanevId FETCH NEXT FROM IntezmenyTanevCursor INTO @IntezmenyId, @TanevId END CLOSE IntezmenyTanevCursor DEALLOCATE IntezmenyTanevCursor