Hi! Folgendes Problem mit einer Datenbank auf MS SQL Server 2000:
Ich hab eine Tabelle Mobilien mit (unter anderem) einer Spalte MobID (Autowert) und einer Spalte StandortID (FK auf einer anderen Tabelle).
In einer Tabelle StandortHistory werden alle Standort-Änderungen mitprotokolliert. Dazu gibt es einen Trigger, der bei Insert und Update in der Tabelle Mobilien einen neuen Datensatz in die Tabelle StandortHistory schreibt. Dazu werden über die Hilfstabelle inserted die MobID und StandortID ausgelesen.
Soweit, so gut. Funktioniert bei einem Update der StandortID alles problemlos. Bei einem Insert, dh. beim neu anlegen einer Mobilie hab ich aber ein Problem:
Der Trigger funktioniert zwar auch hier und macht den Insert in StandortHistory, allerdings ist bei den Mobilien die neue MobID nicht sofort da, sondern anscheinend erst wenn der Trigger fertig ist.
D.h. die MobID wird in der Mobilien-Tabelle erst angezeigt, wenn ich die Daten manuell aktualisiere.
Das wirkliche Problem damit entsteht erst im Access-Frontend: Dadurch dass die MobID nicht gleich da ist, kommt die Meldung dass der Datensatz zwar gespeichert wird aber nicht angezeigt werden kann. D.h. erst wenn man die Datensätze aktualisiert wird auch der neue Datensatz am Formular angezeigt. Das ist natürlich ziemlich lästig wenn man viel mit der Datenbank arbeitet.
Das selbe Problem habe ich auch noch bei einer weiteren Tabelle Literatur, die ebenfalls eine StandortHistory hat und einen identen Trigger verwendet. Es hat aber eindeutig mit dem Trigger zu tun, denn wenn ich ihn wegnehme oder einen Trigger teste der nicht auf die MobID zugreift, dann funktioniert alles fehlerlos.
Außerdem ist komisch, dass dieses Problem nicht immer auftritt, aber meistens schon.
Leider hat mir mit diesem Problem noch niemand helfen können. Ich hoffe, ihr wisst Rat!