В Sherlock Platform признак прочтения выставляется по дате просмотра диалога. Все сообщения с датой, позднее чем дата просмотра, считаются не прочитанными. Если пользователь на просматривал диалог, то все его сообщения считаются не прочитанными.
Поэтому в соответствии с логикой нам надо для всех пар диалогов и пользователей создать запись с датой просмотра (текущей или другой необходимой).
Ниже приведен пример для обновления даты просмотра по текущей дате:
INSERT tbl_RequestUser(RequestID,UserID,ViewDate)
SELECT r.ID, u.ID, GETUTCDATE()
FROM tbl_Request r LEFT JOIN tbl_User u ON r.ID<>u.ID
LEFT JOIN tbl_RequestUser ru ON ru.RequestID=r.ID AND ru.UserID=u.ID
WHERE ru.ID IS NULL AND u.IsBot=0