Gelöst Update auf die Final 1.4 bricht mit Fehlermeldung ab

saimax

Aktives Mitglied
10. Mai 2010
49
5
Hamburg
Ich versuche jetzt die JTL Wawi von 1.3.21.0 auf die neue JTL Wawi 1.4.26.1 final upzudaten.
Es klappt leider nicht und der update Prozess bricht mit einer Fehlermeldung ab.

03:49:40 Fehler in der Version 1.4.8.0 beim Befehl:
==============================================
ALTER TABLE tBestellung ALTER COLUMN nPlatform int NOT NULL
==============================================
Message: Index "_dta_index_tBestellung_7_1360984175__K26_K20_K8_K1_2_3_4_5_6_7_9_10_11_12_13_14_15_16_17_18_19_21_22_23_24_25_27_28_29_30_31_" ist von Spalte "nPlatform" abhängig.
LineNumber: 1
Procedure:


03:49:40 Fehler in der Version 1.4.8.0 beim Befehl:
==============================================
ALTER TABLE tBestellung ALTER COLUMN nPlatform int NOT NULL
==============================================
Message: Fehler bei ALTER TABLE ALTER COLUMN nPlatform, da mindestens ein Objekt auf diese Spalte zugreift.
LineNumber: 1
Procedure:


Ich habe dies mehrmals probiert aber leider kommt es immer an dieser Stelle zu einen Problem.
Hat einer das gleiche Problem oder kennt eine Lösung.
Danke im Voraus
 

frankw

Moderator
Mitarbeiter
15. Dezember 2017
652
234
Hürth
Hallo Saimax,

rein von der Benennnung sieht der Index "_dta_index_tBestellung_7_1360984175__K26_K20_K8_K1_2_3_4_5_6_7_9_10_11_12_13_14_15_16_17_18_19_21_22_23_24_25_27_28_29_30_31_ "
nicht so aus, als würde er zur Standardinstallation gehören.

1557732464065.png

Versuchen Sie doch bitte den genannten Index über das SQL-Management Studio zu deaktivieren oder zu löschen.

Gruß,
Frank
 
  • Gefällt mir
Reaktionen: Manuel Pietzsch

saimax

Aktives Mitglied
10. Mai 2010
49
5
Hamburg
Vielen Dank für die Antwort.
Konnte nicht sofort antworten da es immer etwas dauert bis die installation abbricht..
1. Habe die Einträge (es sind 4 Stück) deaktiviert aber es kommt der gleiche Fehler
2. Habe daraufhin die eintrage gelöscht und installiert, auch hier kommt der Fehler wieder und zwar
werden die gleichen 4 Indizien angelegt die dann wieder diese Fehlermeldung verursachen.
Ich muss wohl noch mit der 1.3 leben.
Danke für die Hilfe.

P.S. die indiezies haben wirklich die gleichen Namen wie die gelöschten hatte Screenshots davon gemacht und verglichen.
 

SebastianB

Moderator
Mitarbeiter
6. November 2012
2.084
339
Hallo,

das sind Indizes und Statistiken vom "Database Tuning Advisor". Wenn man den verwendet hat muss die Datenbank erst wieder in den Ursprungszustand versetzt werden, sonst laufen unsere Updates nicht durch.

Es gibt glaub ich im Internet Skripte die das erledigen - aber vorher auf jeden Fall ein Backup der DB anlegen.

LG
Sebastian
 

saimax

Aktives Mitglied
10. Mai 2010
49
5
Hamburg
hmm Ok dann bemühe ich mal Google und teile dann mit was ich gemacht habe und ob es geklappt hat.
Danke
 

saimax

Aktives Mitglied
10. Mai 2010
49
5
Hamburg
So das einzige was ich zu dem Thema gefunden habe ist das man mit dem SQL Profiler oder dem Datenbankoptimierungsratgeber was macht.
Das Problem bei mir ist bei beiden nichts gespeichert also keine Prozesse vorhanden sind die ich beenden oder löschen kann.
Ich habe auch nie mit einen der beiden Tools was gemacht.
Einer noch eine Idee?
 

frankw

Moderator
Mitarbeiter
15. Dezember 2017
652
234
Hürth
Hallo,

ich hatte noch die Hoffnung, das es sich um ein paar einzelne Indexe handelt 😉

Wenn der Datenbankoptimierungsratgeber mal über die DB gelaufen ist, dann ists komplizierter.
Im Prinzip muß man alle Objekte die mit _dta_index_irgendwas benannt sind löschen.

https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008-r2/ms190172(v=sql.105)

Ich schau mal morgen ob es dafür ein Skript gibt. Sollte kein unlösbares Problem sein.

Herausfinden kann man die zu löschenden Einträge mit dieser Abfrage:
Code:
select * from sys.indexes where is_hypothetical = 1

Gruß,
Frank
 

saimax

Aktives Mitglied
10. Mai 2010
49
5
Hamburg
Bei mir hat der Code

select * from sys.indexes where is_hypothetical = 1

keine Zeile betroffen angezeigt.
Ich habe jetzt einige Stunden mehrere Versuche ausgeführt dies und das Probiert aber leider bricht das update immer ab.
Morgen werde ich nach 18:00 Uhr wieder dazu kommen.
Melde mich wenn ich weiss wie man es lösen kann.
Danke allen die mir Tips für die Lösung gegeben haben.
 

frankw

Moderator
Mitarbeiter
15. Dezember 2017
652
234
Hürth
Ok, dann kann man es noch über den Namen probieren:

SQL:
select * from sys.indexes where name like '_dta_index_%'
 

saimax

Aktives Mitglied
10. Mai 2010
49
5
Hamburg
DANKE
Ich habe es hinbekommen. Keine Ahnung warum gestern es nicht ging hatte wohl Tomaten auf den Augen.
Für alle die ähnliche Probleme haben.
Der Tip von JTL_fwenzl in Beitrag #7 war richtig nur hatte ich irgendwie einen anderen Fehler gemacht. (den ich leider so auch nicht mehr reproduzieren kann)
Danke an JTL_fwenzl.
Und die Lösung ist
In der SQL Management Konsole

use eazybusiness
select * from sys.indexes where is_hypothetical = 1

Danach den Inhalt löschen

DECLARE @sql VARCHAR(MAX) = ''
SELECT
@sql = @sql + 'DROP INDEX [' + i.name + '] ON [dbo].[' + t.name + ']' + CHAR(13) + CHAR(10)
FROM
sys.indexes i
INNER JOIN sys.tables t
ON i.object_id = t.object_id
WHERE
i.is_hypothetical = 1
EXECUTE sp_sqlexec @sql

(Quelle: https://stackoverflow.com/questions/21111927/should-i-delete-hypothetical-indexes)

Danach konnte ich das update ohne Probleme installieren.
Es sind einige Indizies gelöscht (ca 1500) aber ich habe noch ein Backup der alten DB so wenn was fehlen sollte ich mir die Infos da raushole.
Aber bis jetzt sieht alles sauber aus im vorher nachher vergleich.
Der Beitrag kann als erledigt / gelöst markiert werden nur weiss ich nicht wie das geht.
Thx Saimax
 

Ähnliche Themen