hola Disculpa por la demora es que recien llego del trabajo bueno haber prueba esto.
Código:
declare @x int,@Result varchar(100)
set @Result = 'Error';
set @x=2;
select * into #TABLA from TU_TABLA
if @x < select COUNT(*) from #TABLA
BEGIN
update #TABLA set ESTADO= 0
where CAMPO_INDEX in (select top(@x) ROW_NUMBER() over(order by CAMPO_INDEX desc) from #TABLA)
END
ELSE
print @Result
drop table #TABLA
no tengo el sql para probarlo , pero te da una idea de lo que necesitas. saludos