stored procedure mssql

spaceman007

Aktives Mitglied
Hallo,

Problemstellung:
6 Tabellen (diverse Relationen) die von verschiedenen Seiten her updated werden, jede Tabelle hat ein Feld modified, welches mit dem Timestamp des Zeitpunktes des Updates gefüllt wird.

Mit einer Stored Procedure ziehe ich alle Daten zusammen und exportiere sie. Zu jedem Datensatz muss ich den Timestamp des letzten Updates zurückgeben. Da ich aber nicht weiss, in welcher der 6 Tabellen der letzte Update gemacht wurde, weiss ich nicht, welchen Timestamp ich nehmen soll.

Gibt es eine Möglichkeit, alle Modified-Felder auszulesen, dann aber nur den jüngsten Timestamp zurückzugeben?

Weiss leider nicht ob es möglich wäre, in einem select alle Timestamps aufzurufen, durch zuloopen, selber ein recordset zusammenzustellen und zurückzugeben.

Kennt sich jemand aus damit?

Thanks

Spaceman007
 
QUOTE (spaceman007 @ Di 11.12.2007, 13:53)Mit einer Stored Procedure ziehe ich alle Daten zusammen und exportiere sie. Zu jedem Datensatz muss ich den Timestamp des letzten Updates zurückgeben. Da ich aber nicht weiss, in welcher der 6 Tabellen der letzte Update gemacht wurde, weiss ich nicht, welchen Timestamp ich nehmen soll.

Gibt es eine Möglichkeit, alle Modified-Felder auszulesen, dann aber nur den jüngsten Timestamp zurückzugeben?

Nee, das geht nicht.

Der timestamp ist in MSSql ein eindeutiger Wert pro Datenbank, der sich nicht auf eine Uhrzeit umrechnen läßt, sondern rein binär hochgezählt wird.

Wenn mehrere Tabellen eine Spalte vom Datentyp timestamp haben, dann sind alle Werte verschieden.

Für die von dir benötigte Funktionalität: Ergänze eine Spalte bsp. 'lastUpdate' vom Datentyp datetime (oder smalldatetime), definiere die mit dem Standardwert getdate() und ergänze dann deine Ausgabe mit einer geeigneten Max-Anweisung, die nur die 6 Zeilen zu diesem Datensatz umfaßt.
 
Zurück
Oben