Llamada aprocedimiento desde trigger

16/07/2003 - 17:06 por Oscar Heras | Informe spam
Hola a tod@s

Necesito desde un trigger llamar a un procedimiento para que éste haga
un serie de cosas, pero que éste se quede trabajando en un segundo
plano, de forma que el trigger pueda seguir su ejecución sin necesidad
de esperar a que el procedimiento finalice y que estos trabajen de una
forma paralela los dos al mismo tiempo


Como puedo conseguir ésto???

MUCHAS GRACIAS

Preguntas similare

Leer las respuestas

#1 Javier Loria\(MVP\)
16/07/2003 - 17:47 | Informe spam
Hola Oscar:
La forma en que yo soluciono este tipo de problemas es via JOBS, esto es
agregas un trabajo de SQL y no le fijas ningun calendario. Y luego lo
ejecutas SP_START_JOB.
Claro tiene algunas limitaciones porque no puedes pasar parametros pero
si puedes usar alguna tabla intermedia para pasar los parametros y alguno
numero que identifique la ejecucion.
Espero haberme explicado,

Javier Loria
Costa Rica (MVP)
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.

Hola a

Necesito desde un trigger llamar a un procedimiento para que éste haga
un serie de cosas, pero que éste se quede trabajando en un segundo
plano, de forma que el trigger pueda seguir su ejecución sin necesidad
de esperar a que el procedimiento finalice y que estos trabajen de una
forma paralela los dos al mismo tiempo


Como puedo conseguir ésto???

MUCHAS GRACIAS
Respuesta Responder a este mensaje
#2 Miguel Egea
16/07/2003 - 18:05 | Informe spam
Es una buena idea, pero me gustaría que Oscar si lo implementa así tenga
cuidado con las transacciones, por ejemplo
begin tran
use tempdb
go
create table t (id int)
go
create trigger tr on t for insert
as
begin
select @@version
...
sp_start_job .
end
go
begin tran
insert into t values (1)
rollback

se ha hecho rollback, pero el job ya se ha iniciado y fuera de la
transacción.


Un Saludo
Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.

"Javier Loria(MVP)" escribió en el mensaje
news:
Hola Oscar:
La forma en que yo soluciono este tipo de problemas es via JOBS, esto


es
agregas un trabajo de SQL y no le fijas ningun calendario. Y luego lo
ejecutas SP_START_JOB.
Claro tiene algunas limitaciones porque no puedes pasar parametros


pero
si puedes usar alguna tabla intermedia para pasar los parametros y alguno
numero que identifique la ejecucion.
Espero haberme explicado,

Javier Loria
Costa Rica (MVP)
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.

> Hola a
>
> Necesito desde un trigger llamar a un procedimiento para que éste haga
> un serie de cosas, pero que éste se quede trabajando en un segundo
> plano, de forma que el trigger pueda seguir su ejecución sin necesidad
> de esperar a que el procedimiento finalice y que estos trabajen de una
> forma paralela los dos al mismo tiempo
>
>
> Como puedo conseguir ésto???
>
> MUCHAS GRACIAS


Respuesta Responder a este mensaje
#3 Oscar Heras
16/07/2003 - 18:28 | Informe spam
En prinipio esto es lo que me podria valer, pero necesito saber con
seguridad que una vez llamado a ese trabajo (sp_start_job), que el
trigger siga su funcionamiento independientemente del job, ya que éste
puede trabajar durante horas y no puedo dejar bloqueada la otra parte
de la aplicacion

Gracias

On Wed, 16 Jul 2003 09:47:41 -0600, "Javier Loria\(MVP\)"
wrote:

Hola Oscar:
La forma en que yo soluciono este tipo de problemas es via JOBS, esto es
agregas un trabajo de SQL y no le fijas ningun calendario. Y luego lo
ejecutas SP_START_JOB.
Claro tiene algunas limitaciones porque no puedes pasar parametros pero
si puedes usar alguna tabla intermedia para pasar los parametros y alguno
numero que identifique la ejecucion.
Espero haberme explicado,

Javier Loria
Costa Rica (MVP)
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.

Hola a

Necesito desde un trigger llamar a un procedimiento para que éste haga
un serie de cosas, pero que éste se quede trabajando en un segundo
plano, de forma que el trigger pueda seguir su ejecución sin necesidad
de esperar a que el procedimiento finalice y que estos trabajen de una
forma paralela los dos al mismo tiempo


Como puedo conseguir ésto???

MUCHAS GRACIAS



Respuesta Responder a este mensaje
#4 Javier Loria\(MVP\)
16/07/2003 - 18:51 | Informe spam
Hola Oscar:
Te garantizo que el JOB se va a ejecutar TOTALMENTE independiente de
Trigger, y como bien comento Miguel va a tener una Transaccion
Independiente, por lo que deberas tener en consideracion al construir su
aplicacion.
Algunos observaciones adicionales:
a) No siempre puedes contar con que arranque "Inmediatamente" ya que
a veces pasan algunos segundos para que el Agente de SQL Server lo inicie.
b) El Agente de SQL debe estar activo.
c) La seguridad puedes ser un problema, revisa la Documentacion en
Linea sobre SP_START_JOB, y quienes tienen derecho a ejecutarlo y bajo que
usuario se ejecuta. Esto requiere configuracion y puede representar
problemas de seguridad.
Otra alternativa es tener una Tabla en la cual se insertan los
parametros y tener un JOB que frecuentemente este revisando la tabla, y si
encuentra alguna fila nueva, inicia el procedimiento.
Por cierto que es lo que deseas ejecutar?, podria ser que exista alguna
alternativa mas "elegante".

Saludos,


Javier Loria
Costa Rica (MVP)
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.

En prinipio esto es lo que me podria valer, pero necesito saber con
seguridad que una vez llamado a ese trabajo (sp_start_job), que el
trigger siga su funcionamiento independientemente del job, ya que éste
puede trabajar durante horas y no puedo dejar bloqueada la otra parte
de la aplicacion

Gracias

On Wed, 16 Jul 2003 09:47:41 -0600, "Javier Loria\(MVP\)"
wrote:

Hola Oscar:
La forma en que yo soluciono este tipo de problemas es via JOBS,
esto es agregas un trabajo de SQL y no le fijas ningun calendario. Y
luego lo ejecutas SP_START_JOB.
Claro tiene algunas limitaciones porque no puedes pasar
parametros pero si puedes usar alguna tabla intermedia para pasar
los parametros y alguno numero que identifique la ejecucion.
Espero haberme explicado,

Javier Loria
Costa Rica (MVP)
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.

Hola a

Necesito desde un trigger llamar a un procedimiento para que éste
haga
un serie de cosas, pero que éste se quede trabajando en un segundo
plano, de forma que el trigger pueda seguir su ejecución sin
necesidad
de esperar a que el procedimiento finalice y que estos trabajen de
una forma paralela los dos al mismo tiempo


Como puedo conseguir ésto???

MUCHAS GRACIAS
Respuesta Responder a este mensaje
#5 Oscar Heras
17/07/2003 - 16:51 | Informe spam
Mucha gracias, al final me he decidido a hacerlo con la tabla
auxiliar, por una serie de cosas que de esta forma puedo aprovechar a
hacer tambien

Lo que debo ejecutar es un procedimiento almacenado


GRACIAS DE TODAS FORMAS
On Wed, 16 Jul 2003 10:51:48 -0600, "Javier Loria\(MVP\)"
wrote:

Hola Oscar:
Te garantizo que el JOB se va a ejecutar TOTALMENTE independiente de
Trigger, y como bien comento Miguel va a tener una Transaccion
Independiente, por lo que deberas tener en consideracion al construir su
aplicacion.
Algunos observaciones adicionales:
a) No siempre puedes contar con que arranque "Inmediatamente" ya que
a veces pasan algunos segundos para que el Agente de SQL Server lo inicie.
b) El Agente de SQL debe estar activo.
c) La seguridad puedes ser un problema, revisa la Documentacion en
Linea sobre SP_START_JOB, y quienes tienen derecho a ejecutarlo y bajo que
usuario se ejecuta. Esto requiere configuracion y puede representar
problemas de seguridad.
Otra alternativa es tener una Tabla en la cual se insertan los
parametros y tener un JOB que frecuentemente este revisando la tabla, y si
encuentra alguna fila nueva, inicia el procedimiento.
Por cierto que es lo que deseas ejecutar?, podria ser que exista alguna
alternativa mas "elegante".

Saludos,


Javier Loria
Costa Rica (MVP)
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.

En prinipio esto es lo que me podria valer, pero necesito saber con
seguridad que una vez llamado a ese trabajo (sp_start_job), que el
trigger siga su funcionamiento independientemente del job, ya que éste
puede trabajar durante horas y no puedo dejar bloqueada la otra parte
de la aplicacion

Gracias

On Wed, 16 Jul 2003 09:47:41 -0600, "Javier Loria\(MVP\)"
wrote:

Hola Oscar:
La forma en que yo soluciono este tipo de problemas es via JOBS,
esto es agregas un trabajo de SQL y no le fijas ningun calendario. Y
luego lo ejecutas SP_START_JOB.
Claro tiene algunas limitaciones porque no puedes pasar
parametros pero si puedes usar alguna tabla intermedia para pasar
los parametros y alguno numero que identifique la ejecucion.
Espero haberme explicado,

Javier Loria
Costa Rica (MVP)
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.

Hola a

Necesito desde un trigger llamar a un procedimiento para que éste
haga
un serie de cosas, pero que éste se quede trabajando en un segundo
plano, de forma que el trigger pueda seguir su ejecución sin
necesidad
de esperar a que el procedimiento finalice y que estos trabajen de
una forma paralela los dos al mismo tiempo


Como puedo conseguir ésto???

MUCHAS GRACIAS







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