Необходимо объявить скалярную переменную "@id" с хранимой процедурой - PullRequest
0 голосов
/ 29 ноября 2018

Я получил эту процедуру с курсором

CREATE PROCEDURE usp_Inventario
AS
    DECLARE @Id int, @Nombre varchar(255), @precio decimal, @st int, @inv int
    SET @inv = 0

    DECLARE cproducto CURSOR FOR
        SELECT P.ProductID, P.ProductName, P.UnitPrice, P.UnitsInStock
        FROM Products P

и

OPEN cproducto

FETCH cproducto INTO @id, @Nombre, @precio, @st

WHILE (@@FETCH_STATUS = 0)
BEGIN
    PRINT Str(@id) + space(5) + str(@nombre) + space(5) +  Str(@precio) + space(5) + Str(@st)

    SET @inv += @st

    FETCH cproducto INTO @id, @Nombre, @precio, @st
END

CLOSE cproducto
DEALLOCATE cproducto 

PRINT 'Inventario de Productos:' + Str(@inv)

Я получаю эту ошибку

Должен объявить скалярную переменную "@id"

несколько раз, может кто-нибудь сказать, пожалуйста, что я делаю не так?

1 Ответ

0 голосов
/ 29 ноября 2018

Как минимум, вам нужно begin / end:

CREATE PROCEDURE usp_Inventario
AS
BEGIN
    DECLARE @Id int, @Nombre varchar(255), @precio decimal, @st int, @inv int;
    SET @inv=0;
    DECLARE cproducto CURSOR FOR
    SELECT  P.ProductID, P.ProductName, P.UnitPrice, P.UnitsInStock
    FROM Products P;

    . . .
END;
...