000
01.09.2006, 15:01
hausi
|
Folgendes Problem: Ich muss in einem UPDATE-Trigger den aktuell in meiner Applikation eingeloggten Benutzernamen in eine Tabelle eintragen. Den Trigger kann ich ja nicht bei jedem Login neu erstellen, weil die Applikation auch Multi-User tauglich sein muss. Das Problem haben wir für SQL Anywhere folgendermassen gelöst: Wir erstellen eine globale temporäre Tabelle (not transactional), in die der User eingetragen wird. Man kann dann im Trigger mit Hilfe eines Sub-Selects den aktuellen User (der beim Start in die Tabelle gespeichert wird) herausfinden und eintragen.
Hat irgend jemand eine Idee, wie ich das Problem sonst lösen könnte?
Edit: In der Zwischenzeit hab ich herausgefunden, dass man mit ## eine globale temporäre Tabelle anlegen kann. Das Problem ist allerdings, dass MSSQL ON COMMIT PRESERVE ROWS (SQL 99) nicht zu unterstützen scheint.
Edit2: Das Problem hat sich in der Zwischenzeit gelöst. Nach etwa 50 weiteren Versuchen hat sich herausgestellt, dass ich doch auf lokale temporäre Tabellen (die mit einem #) zugreifen kann und so kann ich das ganze jetzt machen. War wohl irgend ein Problem mit einem anderen Teil vom Trigger und da MSSQL manchmal sehr schöne Fehlermeldungen gibt, hab ich das falsch gefolgert.
--
Dieser Beitrag wurde am 01.09.2006 um 18:29 von Superhausi bearbeitet.
|
|
Profil || Suche
|