Вы бы не использовали триггер для этого. возможно можно что-то сделать с сервисным брокером (я не уверен).
Самый простой способ сделать это - просто иметь не обнуляемый LockedOutUntil
smalldatetime
столбец в таблице «Пользователи» (по умолчанию указывается дата в прошлом), и ваш код должен проверить, что
isactive='true' or LockedOutUntil<getdate()
Это будет занимать 4 байта в строке для всех пользователей, хотя и предположительно в любойодин раз очень немногие будут заблокированы, поэтому более эффективным способом будет создание новой таблицы, содержащей детали блокировки.Либо ваш код должен будет проверить эту таблицу, чтобы определить, заблокирован ли пользователь, либо вы можете деактивировать пользователя заранее и запланировать выполнение задания агента SQL Server каждую минуту для повторной активации пользователей, у которых истек период блокировки.Задание может также удалить их из таблицы блокировки, если вы не хотите вести историю этих событий.