Error leve en procedure SQL server 2012

Iniciado por lorblack, 7 Noviembre 2016, 19:28 PM

0 Miembros y 1 Visitante están viendo este tema.

lorblack

Este es mi código

CitarCREATE PROC insertar_producto
   @cod int OUTPUT,
   @nom varchar(100),
   @pre decimal(18,2),
   @img varchar(100)
   AS
   BEGIN
   SET NOCOUNT ON;
   SELECT  ISNULL(MAX(codigoProducto),+ 1) INTO @cod FROM producto
   INSERT INTO producto (codigoProducto, nombre, precio, imagen) VALUES (@cod, @nom, @pre, @img)
   END

el problema es que me aparece con un error en la línea del SELECT INSNULL en la variable @cod, no sé qué estoy haciendo mal, el error.
CitarSintaxis incorrecta cerca de '@cod'.

MCKSys Argentina

Hola!

No sé mucho del tema, pero me parece que la coma delante del +1 está demás?


SELECT  ISNULL(MAX(codigoProducto),+ 1) INTO @cod FROM producto


Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


lorblack

No, la coma debe ir por la sintaxis del IFNULL, puesto que los dos parámetros de estos serian lo que hay antes y después de la coma, el + es sólo para aumentar en 1 el número que hay anteriormente.

fran800m

Creo recordar que isnull es una funcion que devuelve el segundo parámetro si el primero resulta null

¿Puede ser ésto lo que quieres hacer?

SELECT  ISNULL(MAX(codigoProducto) + 1, 1) INTO @cod FROM producto

lorblack