2016-06-20 3 views
0

В нашей базе данных MSSQL у нас есть «пользователи» таблицы. В этой таблице у нас есть несколько столбцов. 2 из этих столбцов: «isOnline» и «lastUpdated». Когда пользователь входит в систему, мы устанавливаем флаг «isOnline» на 1.Выход пользователя из базы данных с использованием повторяющейся хранимой процедуры

Мы хотим проверить с помощью рекурсивной хранимой процедуры (скажем, каждые 30 секунд), что «lastUpdated» составляет более 15 минут.

Если мы хотим, чтобы установить флаг «isOnline» 0.

Никогда не делал этого раньше, так что любая помощь будет оценен по достоинству!

Заранее благодарен!

ответ

0

Создайте запланированное задание, которое запустит хранимую процедуру в определенном расписании.

Чтобы создать и прикрепить график работы

  • В обозревателе объектов подключитесь к экземпляру SQL Server Database Engine, а затем разверните этот экземпляр.
  • Разверните агент SQL Server, разверните Рабочие места, щелкните правой кнопкой мыши задание, которое вы хотите запланировать, и нажмите «Свойства».
  • Выберите страницу «Расписания» и нажмите «Создать».

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

0

В сочетании с ответом Уильяма Ксифараса

Update Users Set isOnline = 0 
Where DateDiff(MINUTE,lastUpdated,GetDate())>=15 
    and isOnline = 1 
Смежные вопросы