PROBLEMAS CON TRIGGER

19/06/2006 - 13:49 por JUAN CARLOS | Informe spam
Tengo una tabla creada con una PK que es un autonumérico:

CREATE TABLE [PRUEBAS] (
[IDPRU] [int] IDENTITY (1, 1) NOT NULL ,
[LETRA] [varchar] (100) NULL ,
CONSTRAINT [PK_PRUEBAS] PRIMARY KEY CLUSTERED
(
[IDPRU]
) ON [PRIMARY]
) ON [PRIMARY]
GO

Sobre ella he creado un triger para que al insertar un dato me lo meta
en una de auditoria:

CREATE TRIGGER Insert_PRUEBAS_AUDIT
ON PRUEBAS
AFTER INSERT AS
INSERT INTO PRUEBAS_AUDIT (ACTUALIZACIÓN,ACCION,
[PRUEBAS_audit].[IDPRU], PRUEBAS_audit].[LETRA])
SELECT GETDATE() AS ACTUALIZACION,'INSERT' AS ACCION, [IDPRU],[LETRA]
FROM INSERTED

Resulta que si inserto un valor nuevo en la tabla pruebas, que tiene un
campo identity, cuando voy a insertar un nuevo registro desde el
Administrador corporativo/ tablas/ Abrir tabla/devolver todas las
filas, en el campo idpru me aparece un 1 en vez del valor real del
campo (por ejemplo 38), sin embargo si pulso sobre ! ejecutar me
aparece el registro con el idpru adecuado.

Se que conlos trigger hay problemas con el ambito y la sesión, pero
puede solucionarse esto de alguna manera
Gracias por todo.
Juan Carlos

Preguntas similare

Leer las respuestas

#1 Maxi
19/06/2006 - 22:13 | Informe spam
Hola, es raro, no te entiendo bien eso del valor 1 y el !. Proba hacer los
insert con el query analizer y TSQL porque no veo problemas en tu trigger a
menos que el campo en la tabla auditoria tambien sea identity y ahi estaria
probocando problemas

"JUAN CARLOS" wrote in message
news:
Tengo una tabla creada con una PK que es un autonumérico:

CREATE TABLE [PRUEBAS] (
[IDPRU] [int] IDENTITY (1, 1) NOT NULL ,
[LETRA] [varchar] (100) NULL ,
CONSTRAINT [PK_PRUEBAS] PRIMARY KEY CLUSTERED
(
[IDPRU]
) ON [PRIMARY]
) ON [PRIMARY]
GO

Sobre ella he creado un triger para que al insertar un dato me lo meta
en una de auditoria:

CREATE TRIGGER Insert_PRUEBAS_AUDIT
ON PRUEBAS
AFTER INSERT AS
INSERT INTO PRUEBAS_AUDIT (ACTUALIZACIÓN,ACCION,
[PRUEBAS_audit].[IDPRU], PRUEBAS_audit].[LETRA])
SELECT GETDATE() AS ACTUALIZACION,'INSERT' AS ACCION, [IDPRU],[LETRA]
FROM INSERTED

Resulta que si inserto un valor nuevo en la tabla pruebas, que tiene un
campo identity, cuando voy a insertar un nuevo registro desde el
Administrador corporativo/ tablas/ Abrir tabla/devolver todas las
filas, en el campo idpru me aparece un 1 en vez del valor real del
campo (por ejemplo 38), sin embargo si pulso sobre ! ejecutar me
aparece el registro con el idpru adecuado.

Se que conlos trigger hay problemas con el ambito y la sesión, pero
puede solucionarse esto de alguna manera
Gracias por todo.
Juan Carlos
Respuesta Responder a este mensaje
#2 qwalgrande
20/06/2006 - 21:17 | Informe spam
Hola.

He aquí un perfecto pleonasmo, redundancia entre términos contiguos
calificando uno al otro, al expresar, "problemas con triggers". La solución
que yo puedo darte es "No uses triggers". Pero eso es muy fácil.

Ya en serio, verifica que no tienes algún otro trigger en la tabla que te
haga un update del campo que no quieras.

Alberto López Grande (qwalgrande)


"JUAN CARLOS" escribió en el mensaje
news:
Tengo una tabla creada con una PK que es un autonumérico:

CREATE TABLE [PRUEBAS] (
[IDPRU] [int] IDENTITY (1, 1) NOT NULL ,
[LETRA] [varchar] (100) NULL ,
CONSTRAINT [PK_PRUEBAS] PRIMARY KEY CLUSTERED
(
[IDPRU]
) ON [PRIMARY]
) ON [PRIMARY]
GO

Sobre ella he creado un triger para que al insertar un dato me lo meta
en una de auditoria:

CREATE TRIGGER Insert_PRUEBAS_AUDIT
ON PRUEBAS
AFTER INSERT AS
INSERT INTO PRUEBAS_AUDIT (ACTUALIZACIÓN,ACCION,
[PRUEBAS_audit].[IDPRU], PRUEBAS_audit].[LETRA])
SELECT GETDATE() AS ACTUALIZACION,'INSERT' AS ACCION, [IDPRU],[LETRA]
FROM INSERTED

Resulta que si inserto un valor nuevo en la tabla pruebas, que tiene un
campo identity, cuando voy a insertar un nuevo registro desde el
Administrador corporativo/ tablas/ Abrir tabla/devolver todas las
filas, en el campo idpru me aparece un 1 en vez del valor real del
campo (por ejemplo 38), sin embargo si pulso sobre ! ejecutar me
aparece el registro con el idpru adecuado.

Se que conlos trigger hay problemas con el ambito y la sesión, pero
puede solucionarse esto de alguna manera
Gracias por todo.
Juan Carlos
Respuesta Responder a este mensaje
#3 Maxi
22/06/2006 - 02:42 | Informe spam
Bueno, no es tan malo usar triggers, solo que hay que tener cuidado nomas y
no abusar de ellos. Para un caso de auditoria me parece una excelente idea
el uso del trigger, es mas la considero la mas apropiada de todas :-)


Salu2
-
[Microsoft MVP] SQL Server
Orador para Culminis Latam
www.sqlgurus.org

MSN:

"qwalgrande" escribió en el mensaje
news:
Hola.

He aquí un perfecto pleonasmo, redundancia entre términos contiguos
calificando uno al otro, al expresar, "problemas con triggers". La
solución que yo puedo darte es "No uses triggers". Pero eso es muy fácil.

Ya en serio, verifica que no tienes algún otro trigger en la tabla que te
haga un update del campo que no quieras.

Alberto López Grande (qwalgrande)


"JUAN CARLOS" escribió en el mensaje
news:
Tengo una tabla creada con una PK que es un autonumérico:

CREATE TABLE [PRUEBAS] (
[IDPRU] [int] IDENTITY (1, 1) NOT NULL ,
[LETRA] [varchar] (100) NULL ,
CONSTRAINT [PK_PRUEBAS] PRIMARY KEY CLUSTERED
(
[IDPRU]
) ON [PRIMARY]
) ON [PRIMARY]
GO

Sobre ella he creado un triger para que al insertar un dato me lo meta
en una de auditoria:

CREATE TRIGGER Insert_PRUEBAS_AUDIT
ON PRUEBAS
AFTER INSERT AS
INSERT INTO PRUEBAS_AUDIT (ACTUALIZACIÓN,ACCION,
[PRUEBAS_audit].[IDPRU], PRUEBAS_audit].[LETRA])
SELECT GETDATE() AS ACTUALIZACION,'INSERT' AS ACCION, [IDPRU],[LETRA]
FROM INSERTED

Resulta que si inserto un valor nuevo en la tabla pruebas, que tiene un
campo identity, cuando voy a insertar un nuevo registro desde el
Administrador corporativo/ tablas/ Abrir tabla/devolver todas las
filas, en el campo idpru me aparece un 1 en vez del valor real del
campo (por ejemplo 38), sin embargo si pulso sobre ! ejecutar me
aparece el registro con el idpru adecuado.

Se que conlos trigger hay problemas con el ambito y la sesión, pero
puede solucionarse esto de alguna manera
Gracias por todo.
Juan Carlos


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