@@error en procedure

11/11/2003 - 16:49 por luis_mtz | Informe spam
saludos!

Tengo un procedimiento almacenado, que agrega registros
a una tabla, la tabla y el procedimiento tienen las
siguientes estructuras...

CREATE TABLE almacen
(
alm_cla int IDENTITY not Null PRIMARY KEY,
alm_des varchar(50) not null CONSTRAINT
ck_almacen_alm_des_novacio CHECK (alm_des<>'')
)


CREATE PROC pduinsertalmacen @descripcion varchar
(50),@lnid int OUTPUT,@lnerror int OUTPUT as
INSERT INTO almacen (alm_des) VALUES (@descripcion)
SET @lnerror=@@error
SET @lnid=@@IDENTITY



En este caso yo espero que el procedimiento me devuelva el
valor IDENTITY el cual si me lo devuelve cuando se inserta
un registro. Cuando intencionalmente intento agregar un
registro en blanco (con el procedimiento) se activa la
restriccion de la tabla y yo espero la funcion @@error me
devuelva el numero de error que corresponde, pero el valor
no es devuelto, de hecho me sucede como si no existiera la
linea SET @lnerror=@@error lo curioso es que la funcion
identity funciona sin problema. No se si sea que la
funcion error no tome el error por esta restriccion.

SQL-Server 2000 Desktop Engine(MSDE)

Gracias.

luis_mtz
 

Leer las respuestas

#1 Accotto Maximiliano D.
11/11/2003 - 18:37 | Informe spam
si pruebas en lugar de retornar algo q muestre con un select el @@error que
te da?

ej:

Select @@error

Accotto Maximiliano Damian
"luis_mtz" escribió en el mensaje
news:015601c3a86b$6b91a520$

saludos!

Tengo un procedimiento almacenado, que agrega registros
a una tabla, la tabla y el procedimiento tienen las
siguientes estructuras...

CREATE TABLE almacen
(
alm_cla int IDENTITY not Null PRIMARY KEY,
alm_des varchar(50) not null CONSTRAINT
ck_almacen_alm_des_novacio CHECK (alm_des<>'')
)


CREATE PROC pduinsertalmacen @descripcion varchar
(50),@lnid int OUTPUT,@lnerror int OUTPUT as
INSERT INTO almacen (alm_des) VALUES (@descripcion)
SET @lnerror=@@error
SET @lnid=@@IDENTITY



En este caso yo espero que el procedimiento me devuelva el
valor IDENTITY el cual si me lo devuelve cuando se inserta
un registro. Cuando intencionalmente intento agregar un
registro en blanco (con el procedimiento) se activa la
restriccion de la tabla y yo espero la funcion @@error me
devuelva el numero de error que corresponde, pero el valor
no es devuelto, de hecho me sucede como si no existiera la
linea SET @lnerror=@@error lo curioso es que la funcion
identity funciona sin problema. No se si sea que la
funcion error no tome el error por esta restriccion.

SQL-Server 2000 Desktop Engine(MSDE)

Gracias.

luis_mtz

Preguntas similares