Error con trigger

09/12/2003 - 19:31 por Julio | Informe spam
Alguien me pude decir que esta pasando aqui, ya que me da este error
corriendo este trigger.

CREATE TRIGGER tr_insertarordendecompra ON ordendecompra
INSTEAD OF INSERT
AS
IF EXISTS (SELECT ordennumero FROM ordencancelada WHERE ordennumero IN
( SELECT ordennumero FROM inserted ) )
RAISERROR ('Esta orden fue cancelada.',16,1)
ELSE
INSERT INTO ordendecompra SELECT * FROM inserted


Server: Msg 8101, Level 16, State 1, Procedure tr_insertarordendecompra,
Line 8
An explicit value for the identity column in table 'ordendecompra' can only
be specified when a column list is used and IDENTITY_INSERT is ON.

Preguntas similare

Leer las respuestas

#1 Miguel Egea
09/12/2003 - 19:35 | Informe spam
Ordendecompra tiene un campo identity, que no debes/puedes establecer
directamente, ejecuta la instrucción de la forma
insert into ordendecompra(campo2,campo3,...campon) select
campo2,camp3,...campon from inserted


Saludos

Miguel Egea
Microsoft SQL-SERVER MVP
Brigada Anti-Cursores
"Julio" escribió en el mensaje
news:#8$
Alguien me pude decir que esta pasando aqui, ya que me da este error
corriendo este trigger.

CREATE TRIGGER tr_insertarordendecompra ON ordendecompra
INSTEAD OF INSERT
AS
IF EXISTS (SELECT ordennumero FROM ordencancelada WHERE ordennumero IN
( SELECT ordennumero FROM inserted ) )
RAISERROR ('Esta orden fue cancelada.',16,1)
ELSE
INSERT INTO ordendecompra SELECT * FROM inserted


Server: Msg 8101, Level 16, State 1, Procedure tr_insertarordendecompra,
Line 8
An explicit value for the identity column in table 'ordendecompra' can


only
be specified when a column list is used and IDENTITY_INSERT is ON.


Respuesta Responder a este mensaje
#2 Maximiliano Damian Accotto
09/12/2003 - 19:45 | Informe spam
el problema ahi es el identity de la tabla ordendecompra (revisa SET
IDENTITY_INSERT en tus bol)!! ahora creo que aca te fallaria por ej cuando
insertas mas de un registro no?

si haces select * from inserted y se insertan mas de un registro tendras
algunos problemas diria.

porque no hacer algo asi como:

insert ordendecompra (aca pones los campos)
select inserted.campo1,inserted.campo2,blabla
from inserted where numero not in (select numero from ordencancelada)

suerte
Maximiliano Damian Accotto
"Julio" escribió en el mensaje
news:%238$
Alguien me pude decir que esta pasando aqui, ya que me da este error
corriendo este trigger.

CREATE TRIGGER tr_insertarordendecompra ON ordendecompra
INSTEAD OF INSERT
AS
IF EXISTS (SELECT ordennumero FROM ordencancelada WHERE ordennumero IN
( SELECT ordennumero FROM inserted ) )
RAISERROR ('Esta orden fue cancelada.',16,1)
ELSE
INSERT INTO ordendecompra SELECT * FROM inserted


Server: Msg 8101, Level 16, State 1, Procedure tr_insertarordendecompra,
Line 8
An explicit value for the identity column in table 'ordendecompra' can


only
be specified when a column list is used and IDENTITY_INSERT is ON.


Respuesta Responder a este mensaje
#3 Javier Loria
09/12/2003 - 21:41 | Informe spam
Hola:
Y recuerda que lo mas probable es que inmediatamente despues del
RAISERROR quieres hacer ROLLBACK.
Si no es posible que comprometas las transacciones,
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.
Miguel Egea escribio:
Ordendecompra tiene un campo identity, que no debes/puedes establecer
directamente, ejecuta la instrucción de la forma
insert into ordendecompra(campo2,campo3,...campon) select
campo2,camp3,...campon from inserted



Miguel Egea
Microsoft SQL-SERVER MVP
Brigada Anti-Cursores
"Julio" escribió en el mensaje
news:#8$
Alguien me pude decir que esta pasando aqui, ya que me da este error
corriendo este trigger.

CREATE TRIGGER tr_insertarordendecompra ON ordendecompra
INSTEAD OF INSERT
AS
IF EXISTS (SELECT ordennumero FROM ordencancelada WHERE ordennumero
IN ( SELECT ordennumero FROM inserted ) )
RAISERROR ('Esta orden fue cancelada.',16,1)
ELSE
INSERT INTO ordendecompra SELECT * FROM inserted


Server: Msg 8101, Level 16, State 1, Procedure
tr_insertarordendecompra, Line 8
An explicit value for the identity column in table 'ordendecompra'
can only be specified when a column list is used and IDENTITY_INSERT
is ON.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida