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.

Mostrar la cita
#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:
Mostrar la cita
es
Mostrar la cita
pero
Mostrar la cita
#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:

Mostrar la cita
#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.

Mostrar la cita
#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:

Mostrar la cita
Ads by Google
Search Busqueda sugerida