Hola! tengo un pequeño problema que no se donde esta mal y no puedo
resolverlo, por lo que acudo a los gurus del foro.
Escenario:
App. que se conecta a un SQL2000, a taves de una unica conexión permanente,
luego dela conexion la app. crea una tabla temporal y pone un dato en ella
CREATE TABLE #Variables (ID smallint)"
INSERT INTO #Variables (ID) VALUES (xx)
luego, en una tabla, tengo un triger asi:
CREATE TRIGGER TABLA_Audit_Insert ON TABLA
INSTEAD OF INSERT
AS
DECLARE @ID smallint
EXEC sp_Get_ID @ID OUTPUT
SELECT * INTO #tmp FROM inserted
UPDATE #tmp SET Insert_Date=GetDate(), Insert_ID=@ID
INSERT INTO TABLA SELECT * FROM #tmp
y en ese triger usa un sp:
CREATE PROCEDURE sp_Get_ID @ID smallint OUTPUT AS
IF Object_id('tempdb.dbo.#Variables') IS NULL
SELECT @ID=0
ELSE
SELECT @ID=ID FROM #Variables
-
Problema: cuando se agregan datos, en algunos registros me figura ID=0 (que
seria cuando no detecta la tabla temporal) y en otro el ID es el correcto.
Pregunta: porque algunas veces "obtiene" el ID y en otros no?
Saludos y muchas gracias por vuestros aportes.
Atte. Carlos
Leer las respuestas