Добавьте условие < 10
ГДЕ ОБНОВЛЕНИЯ. Если вы хотите удалить, когда 10, то вы говорите «это 9 сейчас?»
-- DECLARE @rc int
update dbo.tblMessages
set
messageFlags = (messageFlags + 1)
where messageId = @messageId and messageId < 10
/*
or assign SET @rc = @@ROWCOUNT to do more stuff first
*/
IF @@ROWCOUNT = 0
DELETE dbo.tblMessages WHERE messageId = @messageId
Или используйте функцию назначения UPDATE. Аналогично предложению OUTPUT
DECLARE @newvalue int
BEGIN TRANSACTIOn
update dbo.tblMessages
set
@newvalue = messageFlags = (messageFlags + 1)
where messageId = @messageId
IF @newvalue = 10
DELETE dbo.tblMessages WHERE messageId = @messageId
COMMIT TRAN
Это сводится к вопросу: нужно ли значение, чтобы на самом деле было 10, прежде чем удалять?