Stored Procedure

06/10/2003 - 16:17 por Julio | Informe spam
Hola grupo.

Tengo un problema ejecutando un stored procedure por nombre.

ejemplo.
Esta es la creacion del Stored procedure
create procedure sp_probar
@Nombre varchar (50),
@apellido varchar (50),
@juan int output
as
insert into probar
(nombre,apellido)
values (@nombre,@apellido)

Aqui estoy pasandole datos a los parametros.

declare @Test int
exec sp_probar
@Nombre = 'Juan',
@apellido= 'Perez',
@test output

Cuando lo corro me sale:
Must pass parameter number 3 and subsequent parameters as '@name = value'.
After the form '@name = value' has been used, all subsequent parameters must
be passed in the form '@name = value'.

Cuando se paso parametro por posicion lo hace bien.

Ejemplo.

declare @Test int
exec sp_probar
'Juan' ,
'Perez',
@test output

Preguntas similare

Leer las respuestas

#1 Javier Loria
06/10/2003 - 17:37 | Informe spam
Hola Julio:
Debes pasar el nombre del parametro, algo como:
/* Ejecucion de Procedimiento */
DECLARE @Test int
EXEC sp_probar @Nombre = 'Juan', @apellido= 'Perez' , @juan=@test output
/* Fin Ejecucion de Procedimiento */

Por cierto, es mala practica llamar a los procedimientos almacenados
SP_..., ya que el servidor de SQL busca primero en Master los procedimientos
SP y luego en la BD actual, con lo cual retraza la ejecucion del
procedimiento y se puede prestar a confusion cuando hay procedimientos que
se llaman igual en Master y en la BD de usuario.

Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Julio escribio:
Hola grupo.

Tengo un problema ejecutando un stored procedure por nombre.

ejemplo.
Esta es la creacion del Stored procedure
create procedure sp_probar
@Nombre varchar (50),
@apellido varchar (50),
@juan int output
as
insert into probar
(nombre,apellido)
values (@nombre,@apellido)

Aqui estoy pasandole datos a los parametros.

declare @Test int
exec sp_probar
@Nombre = 'Juan',
@apellido= 'Perez',
@test output

Cuando lo corro me sale:
Must pass parameter number 3 and subsequent parameters as '@name > value'. After the form '@name = value' has been used, all subsequent
parameters must be passed in the form '@name = value'.

Cuando se paso parametro por posicion lo hace bien.

Ejemplo.

declare @Test int
exec sp_probar
'Juan' ,
'Perez',
@test output
Respuesta Responder a este mensaje
#2 Julio
06/10/2003 - 17:46 | Informe spam
Gracias Javier, por tu sugerencia, me funciono correctamente.
"Javier Loria" wrote in message
news:enPPJ$
Hola Julio:
Debes pasar el nombre del parametro, algo como:
/* Ejecucion de Procedimiento */
DECLARE @Test int
EXEC sp_probar @Nombre = 'Juan', @apellido= 'Perez' , @juan=@test output
/* Fin Ejecucion de Procedimiento */

Por cierto, es mala practica llamar a los procedimientos almacenados
SP_..., ya que el servidor de SQL busca primero en Master los


procedimientos
SP y luego en la BD actual, con lo cual retraza la ejecucion del
procedimiento y se puede prestar a confusion cuando hay procedimientos que
se llaman igual en Master y en la BD de usuario.

Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Julio escribio:
> Hola grupo.
>
> Tengo un problema ejecutando un stored procedure por nombre.
>
> ejemplo.
> Esta es la creacion del Stored procedure
> create procedure sp_probar
> @Nombre varchar (50),
> @apellido varchar (50),
> @juan int output
> as
> insert into probar
> (nombre,apellido)
> values (@nombre,@apellido)
>
> Aqui estoy pasandole datos a los parametros.
>
> declare @Test int
> exec sp_probar
> @Nombre = 'Juan',
> @apellido= 'Perez',
> @test output
>
> Cuando lo corro me sale:
> Must pass parameter number 3 and subsequent parameters as '@name > > value'. After the form '@name = value' has been used, all subsequent
> parameters must be passed in the form '@name = value'.
>
> Cuando se paso parametro por posicion lo hace bien.
>
> Ejemplo.
>
> declare @Test int
> exec sp_probar
> 'Juan' ,
> 'Perez',
> @test output


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida