Этот код:
delete cobis..ad_pro_rol
where pr_producto = @w_producto and
pr_rol in (select ro_rol from #roles);
не должен генерировать эту ошибку. Возможно, вы захотите завершить оператор точкой с запятой, просто чтобы быть вдвойне уверенным, что последующий код не вызывается.
Предполагая, что вы не вызываете никакой другой код, посмотрите, не является ли ad_pro_rol
какdelete
триггер. Если это так, триггер может быть неисправен.