Trigger y cancelación de operación en curso.

25/07/2003 - 10:41 por AC | Informe spam
Buenos días,

Tengo una duda respecto a como cancelar la operación en curso en el trigger
que ha desencadenado.
Una forma creo sería RAISERROR que generaría un error, une mensaje para el
usuario y cancelaría la operación. ¿ Es correcto?
Si no se quiere ningún mensaje de error, ¿cómo se puede cancelar la
operación en curso dentro del trigger?

Gracias de antemano, y saludos.

Preguntas similare

Leer las respuestas

#1 Carlos Sacristan
25/07/2003 - 11:30 | Informe spam
No, para cancelar la operación necesitas hacer un ROLLBACK de la
transacción. Si no quieres que lance ningún mensaje de error pero que la
operación se cancele, simplemente no pongas ningún RAISERROR (pero el
ROLLBACK sí)



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro

(Guía de netiquette del foro)
http://www.helpdna.net/bosqlfaq00.htm
http://perso.wanadoo.es/rubenvigon/foro

(FAQ's de SQL Server)
http://support.microsoft.com/defaul.../70faq.asp
http://www.helpdna.net/bosqlfaq.htm

"AC" escribió en el mensaje
news:bfqqhd$cmh$
Mostrar la cita
trigger
Mostrar la cita
#2 Miguel Egea
25/07/2003 - 11:40 | Informe spam
Hay que tener mucho cuidado con los triggers, y con las transacciones, te
pongo un ejemplo puedes ejecutarlo y verás cual es el comportamiento.


use tempdb
go
create table a (id int)
go
create trigger trg_a on a for insert,update,delete
as
begin
set nocount on
select id from inserted where id=2
if @@rowcount=0
begin
print 'solo permitimos insertar el número 2'
raiserror ('Esto es un error, pero naturalmente no para la
ejecución...',16,1)
print 'pero por aquí si paso'
print 'número de transacciones ' + cast(@@trancount as varchar)
rollback
print 'Paso aunque hay ejecutado rollback. número de
transacciones ' + cast(@@trancount as varchar)
print '¡OJO que estoy fuera de transacciones..!'
return
print 'por aquí no paso'
end
set nocount off
end
go
insert into a values(1)
go
insert into a values (2)
select * from a



Espero que te sirva.

Saludos
Miguel Egea
http://www.portalsql.com
Sql-Server MVP
"AC" escribió en el mensaje
news:bfqqhd$cmh$
Mostrar la cita
trigger
Mostrar la cita
#3 Miguel Egea
25/07/2003 - 12:00 | Informe spam
¡Mucho cuidado con rollbacks dentro de triggers!

Espero que te sirva.

Saludos
Miguel Egea
http://www.portalsql.com
Sql-Server MVP
"Carlos Sacristan" <csacristanARROBAocasoPUNTOes> escribió en el mensaje
news:
Mostrar la cita
el
Mostrar la cita
#4 Carlos Sacristan
25/07/2003 - 12:06 | Informe spam
Por supuesto que hay que tener cuidado con los ROLLBACK, Miguel, pero la
pregunta de nuestro amigo era más concreta que lo que le has contestado tú,
por eso he pensado que no hacía falta dar más explicaciones espero no
haberle llevado a confusión



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro

(Guía de netiquette del foro)
http://www.helpdna.net/bosqlfaq00.htm
http://perso.wanadoo.es/rubenvigon/foro

(FAQ's de SQL Server)
http://support.microsoft.com/defaul.../70faq.asp
http://www.helpdna.net/bosqlfaq.htm

"Miguel Egea" escribió en el mensaje
news:
Mostrar la cita
para
Mostrar la cita
#5 Carlos Sacristan
25/07/2003 - 12:18 | Informe spam
Bueeeeeeeeeeeeeeeeeeeeeno, stabieeeeeeeeeeeeeeeeeeeeen todo sea por
el bien de la salud ;-)



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro

(Guía de netiquette del foro)
http://www.helpdna.net/bosqlfaq00.htm
http://perso.wanadoo.es/rubenvigon/foro

(FAQ's de SQL Server)
http://support.microsoft.com/defaul.../70faq.asp
http://www.helpdna.net/bosqlfaq.htm

"Miguel Egea" escribió en el mensaje
news:
Mostrar la cita
pero
Mostrar la cita
no
Mostrar la cita
mensaje
Mostrar la cita
que
Mostrar la cita
el
Mostrar la cita
http://support.microsoft.com/defaul.../70faq.asp
Mostrar la cita
el
Mostrar la cita
la
Mostrar la cita
Ads by Google
Search Busqueda sugerida