Во-первых, вам нужно переместить BEGIN на следующую строку после IF.Синтаксис IF в SQL:
DECLARE @test INT
SET @test = 1
IF (@test = 1)
BEGIN
PRINT 'test is equal to one'
END
Во-вторых, вы не указали условие WHERE в своем операторе обновления.Если вы выполните свое заявление в том виде, в котором оно существует в данный момент, оно обновит репутацию всех пользователей в таблице, что может привести к потере данных.Если вы хотите инициализировать репутацию только для того конкретного пользователя, который оставил комментарий, вам нужно включить WHERE UserID = @UserID (вы можете заполнить эту переменную в первом запросе).
Кроме того, если выПри интенсивном использовании параметризованных запросов я бы рекомендовал сначала создавать запросы непосредственно в редакторе SQL (например, в Visual Studio с подключением к данным или в SQL Server Management Studio).Это поможет вам выявить и исправить любые синтаксические ошибки перед добавлением оператора в код, поскольку их становится намного сложнее отлаживать после преобразования их в строку в коде.