Trigger en SQL Server 2000

12/06/2007 - 16:05 por Gabriel Dameñov | Informe spam
Estimados colegas:
Estoy con un problema recurrente: el de ejecutar sentencias en un bloque
que violan temporalmente algunos triggers. Cuando las sentencias terminan,
la tabla respeta la integridad, pero mientras se realiza la transacción, no.
La única forma que encontré es eliminar temporalmente el trigger y
volver a crearlo desde la aplicación. Lo que necesito:

1) ¿Se puede consultar desde la aplicación cliente el código del trigger
para luego regenerarlo? (esto lo quiero hacer por si alguna vez modifico el
trigger, no tener que actualizar las rutinas del cliente que lo regeneran
luego de borrarlo).

2) ¿Alguno conoce una forma de omitir un trigger temporalmente para no
tener que hacer lo que hago en el punto anterior?

Desde yamuchas gracias.

Un cordial saludo.


Gabriel
-

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera (MVP)
12/06/2007 - 16:40 | Informe spam
Lo que pides hacer es contra la Naturaleza Misma de SQL :-)

La transacción es tu unidad de código para garantizar la consistencia de los
datos, de hehco has observado que al terminar la transacción los datos
respetan la integridad.

Piensa si debes definir la transacción de otra manera, pero eso de
desactivar los triggers es una idea totalmente mala.


Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/p...o.Larriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Gabriel Dameñov" wrote:

Estimados colegas:
Estoy con un problema recurrente: el de ejecutar sentencias en un bloque
que violan temporalmente algunos triggers. Cuando las sentencias terminan,
la tabla respeta la integridad, pero mientras se realiza la transacción, no.
La única forma que encontré es eliminar temporalmente el trigger y
volver a crearlo desde la aplicación. Lo que necesito:

1) ¿Se puede consultar desde la aplicación cliente el código del trigger
para luego regenerarlo? (esto lo quiero hacer por si alguna vez modifico el
trigger, no tener que actualizar las rutinas del cliente que lo regeneran
luego de borrarlo).

2) ¿Alguno conoce una forma de omitir un trigger temporalmente para no
tener que hacer lo que hago en el punto anterior?

Desde yamuchas gracias.

Un cordial saludo.


Gabriel
-



Respuesta Responder a este mensaje
#2 jcac
12/06/2007 - 16:41 | Informe spam
Hola tienes la posibilidad de deshabilitar un trigger con:

Alter Table <nombre tabla> disable trigger <nombre trigger1>, <nombre
trigger1>
Alter Table <nombre tabla> enable trigger <nombre trigger1>, <nombre
trigger1>

saludos

"Gabriel Dameñov" escribió en el mensaje
news:
Estimados colegas:
Estoy con un problema recurrente: el de ejecutar sentencias en un
bloque que violan temporalmente algunos triggers. Cuando las sentencias
terminan, la tabla respeta la integridad, pero mientras se realiza la
transacción, no.
La única forma que encontré es eliminar temporalmente el trigger y
volver a crearlo desde la aplicación. Lo que necesito:

1) ¿Se puede consultar desde la aplicación cliente el código del
trigger para luego regenerarlo? (esto lo quiero hacer por si alguna vez
modifico el trigger, no tener que actualizar las rutinas del cliente que
lo regeneran luego de borrarlo).

2) ¿Alguno conoce una forma de omitir un trigger temporalmente para no
tener que hacer lo que hago en el punto anterior?

Desde yamuchas gracias.

Un cordial saludo.


Gabriel
-


Respuesta Responder a este mensaje
#3 Salvador Ramos
12/06/2007 - 17:11 | Informe spam
Hola,

En 2000, mira en la instrucción alter table la clausula ENABLE/DISABLE
TRIGGER, hace justo lo que estás buscando.
Los triggers se puede deshabilitar y habilitar, evitando el borrado que
estás haciendo. Eso si, debes tener mucho cuidado con la integridad de tus
datos, ya que no se ejecutará el trigger mientras esté deshabilitado.

Un saludo
Salvador Ramos

www.helpdna.net (información sobre SQL Server y Microsoft .Net)
www.helpdna.net/acerca_de_salvador_ramos.htm


"Gabriel Dameñov" escribió en el mensaje
news:
Estimados colegas:
Estoy con un problema recurrente: el de ejecutar sentencias en un
bloque que violan temporalmente algunos triggers. Cuando las sentencias
terminan, la tabla respeta la integridad, pero mientras se realiza la
transacción, no.
La única forma que encontré es eliminar temporalmente el trigger y
volver a crearlo desde la aplicación. Lo que necesito:

1) ¿Se puede consultar desde la aplicación cliente el código del
trigger para luego regenerarlo? (esto lo quiero hacer por si alguna vez
modifico el trigger, no tener que actualizar las rutinas del cliente que
lo regeneran luego de borrarlo).

2) ¿Alguno conoce una forma de omitir un trigger temporalmente para no
tener que hacer lo que hago en el punto anterior?

Desde yamuchas gracias.

Un cordial saludo.


Gabriel
-


Respuesta Responder a este mensaje
#4 Gabriel Dameñov
13/06/2007 - 12:43 | Informe spam
Gracias.


Gabriel J. Dameñov

-
"Salvador Ramos" escribió en el
mensaje news:
Hola,

En 2000, mira en la instrucción alter table la clausula ENABLE/DISABLE
TRIGGER, hace justo lo que estás buscando.
Los triggers se puede deshabilitar y habilitar, evitando el borrado que
estás haciendo. Eso si, debes tener mucho cuidado con la integridad de tus
datos, ya que no se ejecutará el trigger mientras esté deshabilitado.

Un saludo
Salvador Ramos

www.helpdna.net (información sobre SQL Server y Microsoft .Net)
www.helpdna.net/acerca_de_salvador_ramos.htm


"Gabriel Dameñov" escribió en el mensaje
news:
Estimados colegas:
Estoy con un problema recurrente: el de ejecutar sentencias en un
bloque que violan temporalmente algunos triggers. Cuando las sentencias
terminan, la tabla respeta la integridad, pero mientras se realiza la
transacción, no.
La única forma que encontré es eliminar temporalmente el trigger y
volver a crearlo desde la aplicación. Lo que necesito:

1) ¿Se puede consultar desde la aplicación cliente el código del
trigger para luego regenerarlo? (esto lo quiero hacer por si alguna vez
modifico el trigger, no tener que actualizar las rutinas del cliente que
lo regeneran luego de borrarlo).

2) ¿Alguno conoce una forma de omitir un trigger temporalmente para no
tener que hacer lo que hago en el punto anterior?

Desde yamuchas gracias.

Un cordial saludo.


Gabriel
-






Respuesta Responder a este mensaje
#5 Gabriel Dameñov
13/06/2007 - 12:50 | Informe spam
Estimado Gustavo:
El caso particular hace que no vea otro camino. Fíjate que tengo en una
misma tabla los Titulares de una cuenta y los Adherentes de la misma. En un
proceso de enroque, debo hacer que uno de los adehrentes pase a ser titular
y que el titular pase a ser adherente. El trigger evita que haya dos
titulares a la vez o ninguno en alguna cuenta, que es lo que ocurre durante
el proceso de enroque.
Saludos cordiales.


Gabriel
-
"Gustavo Larriera (MVP)"
escribió en el mensaje
news:
Lo que pides hacer es contra la Naturaleza Misma de SQL :-)

La transacción es tu unidad de código para garantizar la consistencia de
los
datos, de hehco has observado que al terminar la transacción los datos
respetan la integridad.

Piensa si debes definir la transacción de otra manera, pero eso de
desactivar los triggers es una idea totalmente mala.


Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/p...o.Larriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Gabriel Dameñov" wrote:

Estimados colegas:
Estoy con un problema recurrente: el de ejecutar sentencias en un
bloque
que violan temporalmente algunos triggers. Cuando las sentencias
terminan,
la tabla respeta la integridad, pero mientras se realiza la transacción,
no.
La única forma que encontré es eliminar temporalmente el trigger y
volver a crearlo desde la aplicación. Lo que necesito:

1) ¿Se puede consultar desde la aplicación cliente el código del
trigger
para luego regenerarlo? (esto lo quiero hacer por si alguna vez modifico
el
trigger, no tener que actualizar las rutinas del cliente que lo regeneran
luego de borrarlo).

2) ¿Alguno conoce una forma de omitir un trigger temporalmente para no
tener que hacer lo que hago en el punto anterior?

Desde yamuchas gracias.

Un cordial saludo.


Gabriel
-



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