Неясно, какова цель вашей процедуры. Однако вот обновленная версия, которая правильно компилируется в SQL Server.
create function pse_consecutivosiif (@empresa numeric, @comprobante numeric, @tercero numeric)
returns numeric
as
begin
declare @i_consecutividad numeric;
select @i_consecutividad = max(consecutividad)
from (
select
hojaidenti,
cedula,
dense_rank() over (order by hojaidenti) as consecutividad
from movimiento mo
inner join vistados vis on mo.identifica = vis.identifica and mo.empresa = vis.empresa
where mo.comprobante = @comprobante
and mo.empresa = @empresa
) t
where cedula = @tercero;
return @i_consecutividad;
end;
Изменения в исходном коде:
переменная должна быть объявлена с ведущий @
вы присваиваете значение переменной с помощью =
в предложении select
запроса; select ... into ...
предназначен для создания новой таблицы, а не для присвоения скалярной переменной
для подзапроса требуется псевдоним
есть лишние закрывающие скобки в конце кода
правильное форматирование и отступ облегчают чтение кода