Identity con trigger instead of

03/04/2004 - 04:40 por luis_mtz | Informe spam
Saludos!


Tengo un procedimiento almacenado que hace un INSERT en
una tabla con un campo IDENTITY, en este procedimiento
tenia la funcion SCOPE_IDENTITY() para obtener el valor
para el campo identity agregado. agregue un TRIGGER
INSTEAD OF para la misma tabla, y ahora el SCOPE_IDENTITY
no me devuelve el valor para el registro agregado. que
funcion debo usar ahora para que me devuelva el identity
agregado? antes tenia la funcion IDENTITY() pero la
cambie puesto que estaba propenso a que me devolviera
valores no correctos para mi INSERT.

gracias.

luis_mtz

Preguntas similare

Leer las respuestas

#1 Isaías
03/04/2004 - 05:30 | Informe spam
Antes de dar una opinion, ¿Que es lo que pretende hacer?
Respuesta Responder a este mensaje
#2 luis_mtz
05/04/2004 - 16:33 | Informe spam
Hola!

Bien pretendo recuperar el valor del identity agregado
desde un procedimiento almacenado, la situacion me cambio
pk el insert real ahora se realiza desde un trigger
instead.



CREATE TRIGGER dbo.trg_insert_movimiento ON dbo.movimiento
INSTEAD OF INSERT as
BEGIN
insert into dbo.movimiento (mov_fol,con_cla,con_des)
SELECT COALESCE((SELECT MAX(mov_fol) FROM dbo.movimiento)
+1,1),con_cla,con_des FROM inserted
END

ALTER PROC dbo.pduinsertmovimiento @concla int, @condes
varchar(50), @lnid int OUTPUT AS
INSERT INTO dbo.movimiento (con_cla, con_des)VALUES
(@concla, @condes)
SET @lnid=SCOPE_IDENTITY()



bien aqui en este ultima linea es donde tengo mi
situacion, Scope_identity ahora me regresa NULL y asi es
pk el insert se realiza en el trigger y este ya esta fuera
del alcance.

gracias.

luis_mtz

Antes de dar una opinion, ¿Que es lo que pretende hacer?
.

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