2016-06-20 12 views
0

In unserer MSSQL-Datenbank haben wir eine Tabelle 'Benutzer'. In dieser Tabelle haben wir ein paar Spalten. 2 dieser Spalten sind 'isOnline' und 'lastUpdated'. Wenn ein Benutzer anmeldet, setzen wir das Flag 'isOnline' auf 1.Logout Benutzer in DB mit wiederkehrenden gespeicherten Prozedur

Wir wollen mit einer rekursiven gespeicherten Prozedur überprüfen (sagen wir alle 30s), dass 'lastUpdated' mehr als 15min ist.

Wenn ja, wollen wir die ‚IsOnline‘ Flag auf 0

nie getan setzen, dass vor, so würde jede Hilfe dankbar!

Vielen Dank im Voraus!

Antwort

0

Erstellen Sie einen geplanten Job, der die gespeicherte Prozedur nach einem bestimmten Zeitplan ausführt.

zu erstellen und einen Zeitplan für einen Job

  • im Objekt-Explorer eine Verbindung zu einer Instanz der SQL Server-Datenbank-Engine, anhängen und dann diese Instanz erweitern.
  • Erweitern Sie den SQL Server-Agenten, erweitern Sie Jobs, klicken Sie mit der rechten Maustaste auf den Job, den Sie planen möchten, und klicken Sie auf Eigenschaften.
  • Wählen Sie die Seite Zeitpläne aus, und klicken Sie dann auf Neu.

https://msdn.microsoft.com/en-us/library/ms191439.aspx

0

In Verbindung mit William Xifaras' Antwort

Update Users Set isOnline = 0 
Where DateDiff(MINUTE,lastUpdated,GetDate())>=15 
    and isOnline = 1 
Verwandte Themen